Главная страница
    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.043 c
11-1071351084
SAGE
2003-12-14 00:31
2004.05.23
KOL не компилируется в FPC ???


8-1078282572
ИМХО
2004-03-03 05:56
2004.05.23
Монохромность


14-1083743684
X9
2004-05-05 11:54
2004.05.23
Отображение кода программ в форумах.


6-1080606162
Керик
2004-03-30 04:22
2004.05.23
Фактическое число байт


1-1084342465
Turbo
2004-05-12 10:14
2004.05.23
Как при нажатии на кнопку запустить приложение?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский