Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

WSA error 10047 !   Найти похожие ветки 

 
greg_us   (2005-04-08 16:49) [0]

Приветствую мастера!

Нужно передать структуру rem_data серверному приложению по UDP протоколу. Делаю так:


procedure UploadDataUdp(ip: string; data: rem_data);
var sin, from :Tsockaddr;
   s:TSocket;
   lfrom: integer;
   wsa: TWSAData;
begin
 WSAStartup(2, wsa);
 s := socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
 if s = INVALID_SOCKET then begin
    MessageBox(0, "Cannot perform "socket"", "Error", MB_OK);
    exit;
 end;

 // fill sockaddr_in structure
 sin.sin_family := AF_INET;
 sin.sin_port := HtoNs(1238);
 sin.sin_addr.S_addr := inet_addr(pChar(ip));
 ZeroMemory(@sin.sin_zero, sizeof(sin.sin_zero));

 lfrom := sizeof(from);
 // send info
 if sendto(s, data, sizeof(data), 0, from, lfrom) = SOCKET_ERROR then begin
    ShowMessage(inttostr(WSAGetLastError));
    closesocket(s);
    exit;
 end;
 closesocket(s);
end;


НО sendto выдает 10047 WSA error, что значит следующее:
Address family not supported by protocol family.
An address incompatible with the requested protocol was used. All sockets are created with an associated address family (that is, AF_INET for Internet Protocols) and a generic protocol type (that is, SOCK_STREAM). This error is returned if an incorrect protocol is explicitly requested in the socket call, or if an address of the wrong family is used for a socket, for example, in sendto.

Помогите разобраться, как решить данную проблему плтз!!

Заранее благодарен!

П.С. На VC++6 аналогичный код работает прекрасно...


 
greg_us   (2005-04-08 22:19) [1]

Мастера... у Вас сегодня выходной? :) Нужна помощь ASAP!!!!


 
Verg ©   (2005-04-09 06:51) [2]


> greg_us   (08.04.05 22:19) [1]
> Мастера... у Вас сегодня выходной?


У нас всегда выходной. Мы только по выхдным тут и ошиваемся.


> WSAStartup(2, wsa);


WSAStartup($202, wsa); и это надо делать один раз при старте приложения.

это раз.

Кто такой from? Почему from?
Ты же вызываешь sendto, т.е. "отправить тому-то". Но вместо этого, ты старательно заполняешь структуру sin, а потом в sendto указываешь from. Это с какого веселья?


> П.С. На VC++6 аналогичный код работает прекрасно...


P.S. Не надо сказок, ладно?


 
greg_us   (2005-04-09 12:12) [3]

2 Verg

Спасибо мэн. Действительно я почему-то вместо sin зачем-то from заюзал :(. А когда переделывал на СИ, то все правильно сделал...

В общем респект ;)



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
14-1117999625
vecna
2005-06-05 23:27
2005.07.11
Где остановиться в Питере.


8-1110701414
Tirex
2005-03-13 11:10
2005.07.11
Наложение текстуры


14-1118049595
I'm
2005-06-06 13:19
2005.07.11
Component s


3-1117530841
ryds
2005-05-31 13:14
2005.07.11
как программно запустить диалоговое окно IBDatabase Editor?


14-1118329934
Soft
2005-06-09 19:12
2005.07.11
Исполнитель желаний.