| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > Не получаю идентификатор сокета при FD_CLOSE |
| Автор: VardanK 1.11.2008, 10:22 | ||
| Доброго времени суток. У меня какая-то проблема с получением идентефикатора сокета. Работаю Я с WinSock 2. В моей программе я вызываю функцию WSAAsyncSelect(servsocket,hWnd,WM_SERVER_EVENT, FD_ACCEPT|FD_CLOSE) где WM_SERVER_EVENT у меня равен WM_USER+2. После чего отлавливаю сообщение WM_SERVER_EVENT следующим образом
Так вот в MSDN написанно что: The wParam parameter identifies the socket on which a network event has occurred. Но на практике оказывается что это не так. Для FD_ACCEPT оно в течении одного сеанса (т.е. программа клиента не перезапускается) не меняется а для FD_CLOSE оно всегда меняется, причем либо возростает, либо убывает! |
| Автор: VardanK 4.11.2008, 21:39 | ||
Спасибо большое за подсказку. Я последовал ей с поправкой (до конца) -> (повнимателнее) и оказалось что:
Т.е. сообщение для FD_CLOSE перехватывалось для клиентского сокета, а FD_ACCEPT для слушающего сокета. СПАСИБО! |