Показать сообщение отдельно

  #2  
Старый 19.11.2009, 10:44
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

какое-то у тебя неадекватное время таймаута стоит. Оно задается на в секундах а в миллисекундах.
Код:
 struct timeval timeout = {0}
...........
 timeout.tv_sec = 10000;  // 10 секунд
...........
 setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, sizeof(struct timeval));
А вообще в коде чтото не вижу проверок на валидность сокета. Т.е. ты не проверяещ - создался он или нет.
также нет проверки того что возвращает recv.
Но главное - ты неудасужился даже проверить что вернул connect
Потому как может ты даже не подключился, а пытаешься считать уже данные.
Также тебе нужны таймауты на connect

В моей статейке по винсоку (https://forum.antichat.ru/showpost.php?p=1331069&postcount=1) может почитать про таймаут на коннект.
 
Ответить с цитированием