| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Не работает shutdown(). |
| Автор: jan 21.5.2004, 19:35 |
| Не работает shutdown. Вот поробовал вычитав с мсдэнки, однако не идет.(закрытие сокета и освобождение порта под него) //зактрываю сокет и освобождаю занятое под него. if (bind(sServ, (LPSOCKADDR)&addr, sizeof(addr))== SOCKET_ERROR) { WSAAsyncSelect(sServ, NULL, 0,FD_CLOSE); shutdown(sServ, SD_SEND); //Ругается на SD_SEND вообщем пишет ошибку. // error C2065: 'SD_BOTH' : undeclared identifier //Error executing cl.exe. closesocket(sServ); err=WSAGetLastError(); MessageBox(NULL, "Listenning Port (TCP) - is Closed now", "KURSAVI", MB_OK); return 0; } Помогите пожалуйста курсач горит. Вот как это напісано в МСДН. To assure that all data is sent and received on a connected socket before it is closed, an application should use shutdown to close connection before calling closesocket. For example, to initiate a graceful disconnect: Call WSAAsyncSelect to register for FD_CLOSE notification. Call shutdown with how=SD_SEND. When FD_CLOSE received, call recv until zero returned, or SOCKET_ERROR. Call closesocket. Note The shutdown function does not block regardless of the SO_LINGER setting on the socket. Что такое и где определяется SO_LINGER сокет? |