и снова RAW SOCKETS
- From
- Gennady Porev (2:550/4.1)
- To
- Kirill Neznamov
- Date
- 2002-11-07T16:40Z
- Area
- SU.WINDOWS.NT.PROG
Hi, Kirill!
07 ноября 2002 14:32 Kirill Neznamov (2:5025/32.88) писал(а) к Gennady Porev про и снова RAW SOCKETS:
GP>> Я всё сделал так как там, но опять-таки не ясен вопрос с IP_HDRINCL.
KN> Ты на какой системе делаешь? IP_HDRINCL проходит только на 2000/XP.
Правда??? Ты мне просто глаза открыл на истину! А заметить в конце моего письма "PS: Win2K" не позволили, очевидно, соображения религиозного характера.
GP>> i : byte;
GP>> begin
GP>> i:=1;
GP>> SetSockOpt(S,IPPROTO_IP,IP_HDRINCL,@i,SizeOf(i));
KN> А вот и ошибка. ^^^^^^^^^
KN> sizeof(i) у тебя будет = 1 так как i у тебя байт.
KN> в msdn сказано что IP_HDRINCL это BOOL.Поэтому:
KN> SetSockOpt(S,IPPROTO_IP,IP_HDRINCL,@i,4);
Да что ты говоришь???? 8-))))) Тогда обьясни, мне, пожалуйста вот что. Во-первых, чем отличается байт и интежер при положении этого параметра на стэк для вызова SetSockOpt, а во-вторых, почему тогда функция SetSockOpt не возвращает здесь значение <>0, если это ошибка?
GP>> Addr.sin_family:=AF_INET;
GP>> Addr.sin_port:=0;
KN> Порт то почему == 0? Ты на какой порт tcp пакет шлешь?
А ему не один фиг? Ведь я даю TCP-заголовок.
KN> Чую тебе надо разобраться с семейством протоколов tcp/ip.
Уж разобрался так разобрался :). Практически, причём. С помощью снифферов и нетмонитора, которые показали, что противопоказаний у этого пакета уйти с интерфейса никаких нет. И ошибка была совершенно даже не здесь.
GP>> PS: Win2k, ессно.
KN> Пока ты сам не научишься проверять коды ошибок у виндовых api функций
KN> тебе будет сложно писать проги.
Знаешь шо, дядя... Если бы я постил сюда настоящие листинги своих прог, где ошибки проверяются буквально от каждой функции, это было бы некрасиво и нечитабельно... Конечно же, ни одна из функций, кроме той, о которой говорилось в предисловии ошибок не возвращала, иначе какого бы хрена я тут спрашивал?
Relax -=- Gennady -=- icq: 13031700
--- GoldED/W32 3.0.1
* Origin: WatchCat-UA (2:550/4.1)