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

Вниз

recv не верно возвращает колличество принятых байт.   Найти похожие ветки 

 
Rezya ©   (2004-03-30 19:03) [0]

Сразу приведу код.

const
MAX_PACKET_SIZE=1024;
var
buffer: array [0..MAX_PACKET_SIZE-1] of byte;
res:integer;
......
......
......
res:=recv(Sock, Buffer, SizeOf(Buffer), 0);

проблема в том что recv то правельно возвращает колличество принятых байт (т.е. if res >= SizeOf(IPHeader) then где IPHeader структура ip-заголовка)то возвращает 1. В чем проблема?


 
Verg ©   (2004-03-30 21:51) [1]

Почему ты решил, что максимальный размер принимаемой датаграммы равен именно 1024 ?
Кто такой Sock? Ты, вообще, учиться чем-нибудь собираешься? Хотя бы задавать вопросы...


 
Rezya ©   (2004-03-30 23:53) [2]

Для не сообразительных
Var
Sock:TSocket;
........
Sock:=Socket(Af_Inet,SOCK_RAW,IPPROTO_IP);


 
Rouse_ ©   (2004-03-31 01:17) [3]

Во первых: Приведенного кода недостаточно для определения ошибки...
Во вторых, как верно указал Андрей, 1024 было взято тобой похоже с потолка...
В третьих - не мешает сделать WSAGetLastError после получения результатом единицы...


 
Verg ©   (2004-03-31 08:32) [4]


> Rouse_ ©   (31.03.04 01:17) [3]


Почти уверен, что не 1-цы, а минус 1-цы, т.е. SOCKET_ERROR


 
Rezya ©   (2004-03-31 09:11) [5]

Да нет как раз 1.


 
Verg ©   (2004-03-31 09:41) [6]


> Rezya ©   (31.03.04 09:11) [5]
> Да нет как раз 1.


Да нет, чудеса ты рассказываешь. Такого не бывает.

Говорят тебе 1024 - это мало для IP датаграммы, и когда этого не хватает  у тебя recv и возвращает SOCKET_ERROR (-1) с WSAGetLastError = WSAEMSGSIZE.

Либо глючные у тебя винды какие-то. Переустанови, сервиспаки там всякие.

Либо.... либо все же, как говорится, "протри глаза".


 
Rouse_ ©   (2004-03-31 10:18) [7]

Ну хорошо - давай будем плясать от противного, пусть возвращяет единицу - тогда что содержится в буфере после этого?


 
Rezya ©   (2004-03-31 16:42) [8]

Ладно закрыли тему. Все у меня зарабатало(наверно глюк в виндах).
Теперь вернусь к старой теме. Как делается перехват иходящего трафика. И фишка с SIO_RCVALL =$98000001; т.е. с тем что она переводит сокет в режим полного перехвата у меня и на сетевухе тоже не пошла.
P.S. Народ ну помогите с перехватом исходящего трафика. Начальник не "слезает". Он как делается через прокс или другими способами???


 
Verg ©   (2004-03-31 17:11) [9]

Короче, послать тебя на WinPCap тебя мне, лично, религия позволяет.

Как тебе?


 
Rezya ©   (2004-04-01 02:15) [10]

Если такой умный то приведы код, хотябы самый простой, с использованием библиотеки WinPCap.
Зарание благодарен



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

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

Наверх




Память: 0.46 MB
Время: 0.024 c
9-1073499972
ork
2004-01-07 21:26
2004.05.23
Текстовая RPG


14-1082923620
Piter
2004-04-26 00:07
2004.05.23
Победа Кличко


14-1083436789
RealRascal
2004-05-01 22:39
2004.05.23
Ярлыком выключить монитор


4-1080930218
xamlo
2004-04-02 22:23
2004.05.23
Програмное нажатие мыши


8-1078418880
Александр...
2004-03-04 19:48
2004.05.23
как перехватить звуковой поток и отправить его в LPT порт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский