Главная страница
    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.039 c
1-1084217733
killer
2004-05-10 23:35
2004.05.23
Вставка втроки в TStringList


4-1081269875
TankMan
2004-04-06 20:44
2004.05.23
Нужен "хук на API функции"...


11-1072174683
zeddy
2003-12-23 13:18
2004.05.23
Link MASM coff .obj files


1-1083743709
half_litre
2004-05-05 11:55
2004.05.23
Переход с Delphi 3 на Delphi 7


14-1083268131
Serious Sam
2004-04-29 23:48
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский