Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.17.137] |
|
Страницы: (4) 1 [2] 3 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Примерно так:
unsigned int optval; DWORD dwBytesRet; ... optval = 1; if (WSAIoctl(s, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL) == SOCKET_ERROR) { printf("WSAIotcl(%d) failed; %d\n", dwIoControlCode, WSAGetLastError()); return -1; } |
Сообщ.
#17
,
|
|
|
С WSAIoctl то же самое, что и с ioctlsocket. Та же самая ошибка.
|
Сообщ.
#18
,
|
|
|
Что говорит WSAGetLastError?
|
Сообщ.
#19
,
|
|
|
WSAGetLastError возвращает WSAEINVAL (Invalid argument) при использовании и ioctlsocket и WSAIoctl.
|
Сообщ.
#20
,
|
|
|
Стоп!
А ты как вызываешь WSASocket или socket, с параметром SOCK_RAW? |
Сообщ.
#21
,
|
|
|
Цитата ViGOur @ SOCK_RAW? а как еще использовать сырые сокеты? |
Сообщ.
#22
,
|
|
|
Да, с SOCK_RAW
|
Сообщ.
#23
,
|
|
|
progr
Надо вызывать WSASocket() Кстати, какую .lib вы линкуетте с проектом? И всетаки желателен код - хотя бы основные моменты - вызов сокета, bind и все остальное с этим связанное. |
Сообщ.
#24
,
|
|
|
хм...
1) у меня (на Win2003) SOCK_RAW и иже с ними работают на ура со стандартными функциями, без всяких WSA* 2) Цитата progr @ насколько мне известно, так оно и есть. К тому же в той же статье с примером написано, что способ с переводом сетевой карты в promiscuous mode в windows 9x не работает. Цитата Oleg2004 @ И всетаки желателен код - хотя бы основные моменты - вызов сокета, bind и все остальное с этим связанное ioctlsocket(s,SIO_RCVALL,&flag); сработает только если предварительно был успешно вызван bind (токо в качестве IP должен быть не с ноль aka INADDR_ANY) |
Сообщ.
#25
,
|
|
|
Да все как в статье я делал
Добавлено С WSASocket тоже не работает. С проектом линкую ws2_32.lib |
Сообщ.
#26
,
|
|
|
Вот тебе пример работы с raw сокетами, который работает на 100%...
И не будем гадать, что не так! Прикреплённый файлsio_rcvall.rar (6.74 Кбайт, скачиваний: 292) |
Сообщ.
#27
,
|
|
|
ViGOur
//#include <mstcpip.h>??? comment? #include "mstcpip.h" Короче скомпилил и.......... получил ту же 10022!!! И Debug, и Release У меня тоже Win98SE Bind проходит, пишет интерфейс, на который биндится, и привет А по каким тогда все-таки именно причине он не хочет пахать на 98-м? Просто сказать - не пашет, и все???? Ведь винсок и все хедеры и все либы - в достатке? В чем же идеологическая ошибка Хочется докопаться до точной причины |
Сообщ.
#28
,
|
|
|
О чем-то говорит?
if (WSAStartup(MAKEWORD(2,2), &wsd) != 0) { printf("WSAStartup() failed: %d\n", GetLastError()); return -1; } |
Сообщ.
#29
,
|
|
|
ViGOur
Ну и что? 20 раз писал, и все ОК - Winsock 2.2 на Win98 идет на раз |
Сообщ.
#30
,
|
|
|
Помнится для этого нужно что-то доустонавливать, что не помню, мы как-то по этому поводу с Uncle_Bob'ом говорили... Он даже ссылку давал, на microsoft'овский сайт, где это описывалось, но вот никак найти не могу...
|