Главная страница
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.028 c
6-1112097854
Laboris
2005-03-29 16:04
2005.07.11
Поиск компов с открытым портом


8-1111159617
webpauk
2005-03-18 18:26
2005.07.11
DirectDraw, потеря изображения


3-1117460455
-=XP=-
2005-05-30 17:40
2005.07.11
Эксклюзивный доступ к БД MS SQL


3-1117292126
Nimfa
2005-05-28 18:55
2005.07.11
SQL запрос, условия в агрег. функции sum()


14-1118028469
kaan
2005-06-06 07:27
2005.07.11
Процесс увольнения