Форум: "Сети";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизНЕ ставиться таймаут на 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 вся ветка
Форум: "Сети";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c