Вниз
Скачать: CL | DM;

НЕ ставиться таймаут на recvfrom!   Найти похожие ветки 

← →
c-forever   (2005-01-24 20:44) [0]

делаю
int timeout = 1000;
setsockopt(sockRaw, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, sizeof(timeout));

чтобы таймаут созданному сокету поставить, потом вызываю

recvfrom(sockRaw, recvbuf, MAX_PACKET, 0, (struct sockaddr*)&from, &fromlen);

и если нет ответа то прога подвисает (типа ждет), хотя я ставил таймаут... В чем тут дело, помогите плз.


← →
Rouse_ ©   (2005-01-25 11:37) [1]

available in the Microsoft implementation of Windows Sockets 2

WSASartup($202, WSAData);


← →
c-forever   (2005-01-25 14:26) [2]

Да-да. Дак и делаю. Сразу по WM_CREATE вызываю
WSAStartup(MAKEWORD(2,2), &WSAData);.

затем создаю сырой сокет:
sockRaw = WSASocket (AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0,0);

затем ставлю таймаута на send и recv:
ште timeout = 1000;
iSize = setsockopt(sockRaw, SOL_SOCKET, SO_SNDTIMEO, (char*)&timeout, sizeof(timeout));
iSize = setsockopt(sockRaw, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, sizeof(timeout));

затем использую настроенный сокет для получения датаграмм:
iSize = recvfrom(sockRaw,recvbuf,MAX_PACKET,0,(struct sockaddr*)&from, &fromlen);

но если сервер не отвечает то прога висит... Что не так? Может есть какой-нить др. способ установления таймаута на такие сокеты?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
1-1110958296
Aleks
2005-03-16 10:31
2005.03.27
Базы компонент DBGrid1 как узнать номер строки????


9-1104822042
DonNikola
2005-01-04 10:00
2005.03.27
Юнит для логирования


3-1109786582
Arazel
2005-03-02 21:03
2005.03.27
Могу ли Я их использовать в компонентах Query для создание mdf


14-1110383090
Piter
2005-03-09 18:44
2005.03.27
Outpost блокирует транзитные пакеты


4-1108153857
AquaForm
2005-02-11 23:30
2005.03.27
В буфере обмена ?????? вместо русского текста




   Наверх