Вниз
Скачать: CL | DM;

Winsock: recv постоянно возвращает 65535   Найти похожие ветки 

← →
Micah'GF   (2004-05-31 10:45) [0]

sSocketGlobal := Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sWorkSocket := connect(sSocketGlobal, AdressStruct, SizeOf(AdressStruct));


..

Result := recv(sSocketGlobal, data, 1024, 0);

почему так может быть?


← →
Verg ©   (2004-05-31 11:21) [1]

Какой тип имеет Result?
Скорее всего recv у тебя возвращает значение SOCKET_ERROR, а если Result у тебя типа word, то ты и получишь 65535.  Между прочим, recv - это функция типа integer.


← →
nomshar   (2004-05-31 11:27) [2]

Пройдить в кейсе  (case) по кодам ошибок. Это раз.
Ну, а главное, что ты посылаешь своему сокету? MSDN почитай. Я русским (вернее английскийм) по белому сказано, что функция recv возвращает количество байт принятой информации. Если соединение было закрыто без нарушений (по MSDN "изящно, грациозно"), то функция возвратит ноль. Иначе возвращает код ошибки. Так что проверяй WSAGetLastError.


← →
Micah'GF   (2004-05-31 11:55) [3]

да, действительно возвращает 10038
а почему так может быть connect() же возвращает 0 и я так понимаю соединение устанавливается!?!
и еще: я устанавливаю соединение с 10.1.4.255 и send() не работает, а если с 10.1.4.100 (свой адрес) то нормально..?!  (датаграммы ловлю с помошью XSpuder)



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

Скачать: CL | DM;



Память: 0.45 MB
Время: -0.962 c
4-1087046455
juiceman
2004-06-12 17:20
2004.08.01
АПИ-функции для работы с оборудованием


1-1090237390
mishabik
2004-07-19 15:43
2004.08.01
SourceSave


4-1084952202
ЁПРСТ
2004-05-19 11:36
2004.08.01
Как найти путь к "Моим документам"?


3-1089077187
big_bugzy
2004-07-06 05:26
2004.08.01
Как включить/выключить регистровую зависимость в запросе?


14-1089745881
\m/
2004-07-13 23:11
2004.08.01
Асма в делфи




   Наверх