Форум: "Сети";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Сети";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.033 c