Форум: "Сети";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
ВнизСоздаю ip пакет вручную, проблема с setsockopt Найти похожие ветки
← →
EvgenTss (2003-05-04 14:14) [0]Следующий код для отсылки своего пакета
if WSAStartUp(257, WSAData) <> 0 then exit;
opt:= Pchar(1);
s := socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
if s = INVALID_SOCKET then exit;
opt:= Pchar(1);
if setsockopt(s, IPPROTO_IP, ip_dontfragment , opt, sizeof
(opt)) = SOCKET_ERROR then exit;
addr.sin_family := AF_INET;
addr.sin_port := htons(0);
addr.sin_addr.S_addr:= inet_addr(PChar(ip_dst));
if sendto(s, buf , sizeof(buf), 0, addr , sizeof(addr)) = SOCKET_ERROR then exit;
CloseSocket(s);
setsockopt возвращает SOCKET_ERROR, второй день бьюсь.
← →
Zelius (2003-05-04 16:16) [1]Что такое ip_dontfragment ? В MSDN о нем ничего нету... И потом, посмотри, что за ошибка возвращается и ее описание для SetSockOpt
← →
EvgenTss (2003-05-04 17:38) [2]IP_DONTFRAGMENT - ставит флаг в заголовке ip запрешающий роутерам фрагментировать пакет(winsock.pas), но это не суть, можно менять ip_ttl или ip_tos но функция всё равно возвращает ошибку socket_error. как можно получть номер ошибки?
← →
Serg! (2003-05-04 18:43) [3]EvgenTss (04.05.03 17:38)
"как можно получть номер ошибки?"
Номер - можнт быть "GetLastError" поможет?
← →
EvgenTss (2003-05-04 22:27) [4]Друзья мой, неужели никто не занимался низкоуровневым программированием сокетов? Как-то не верится. Или мой вопрос слишком тривиален?
← →
nikkie (2003-05-04 22:37) [5]If no error occurs, setsockopt returns zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.
← →
EvgenTss (2003-05-04 23:27) [6]WSAGetLastError нолик возвращает, такие дела...
← →
nikkie (2003-05-05 00:34) [7]неправильно 4-5 параметры заполняешь. нужно передавать указатель на integer + sizeof(integer). пример из indy:
Binding.SetSockOpt(Id_IPPROTO_TCP, Id_TCP_NODELAY, PChar(@Id_SO_True), SizeOf(Id_SO_True));
← →
EvgenTss (2003-05-05 11:22) [8]спасибо, всё ок.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c