делаю int timeout = 1000; setsockopt(sockRaw, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, sizeof(timeout)); чтобы таймаут созданному сокету поставить, потом вызываю recvfrom(sockRaw, recvbuf, MAX_PACKET, 0, (struct sockaddr*)&from, &fromlen); и если нет ответа то прога подвисает (типа ждет), хотя я ставил таймаут... В чем тут дело, помогите плз.
А накой ты свой int timeout в CharЫ переводешь, бяка явно какаято, да еще и размер тамоута, там вроде как сокаддр_ин структура походу должна передаваться...
ZeroMemory В показанном тобой коде все в порядке, т.е. его не достаточно для понимания причин проблемы. ganes int timeout в CharЫ переводешь Тебе ни о чем не говорит использование в коде * и &?
Я вроди как и сам вижу, что вроди все ок, но не работает, что тут поделаешь... Ну в принципе я уже решил эту проблему, использовав таймаут в select() Всем спасибо.
ZeroMemory решил эту проблему Хорошо. использовав таймаут в select Цитата из Socket Options for Windows NT and Windows Me/98/95 (Windows Sockets Version 2: Platform SDK): "Details on SO_SNDTIMEO and SO_RCVTIMEO These two options set up time-outs for the send, sendto, recv, and recvfrom functions. You can obtain the same functionality by calling select with a time-out just before the I/O call, but these options offer a significant improvement in performance by avoiding a kernel transition and the other overhead of the select call. For any code whose performance is very critical, applications should use these time-out options rather than select."