我創建了一個線程在阻塞套接字上接收,它會等到包到達。但是,當我嘗試從主線程斷開連接時,會在導致錯誤的線程之間發生競爭條件。多線程 - 斷開TCP連接
這裏交換髮生在線程之間的線程之間,沒有實際完成斷開連接調用。
void Disconnect() {
if(isConnected) {
if (closesocket(sockClient) != SOCKET_ERROR) {
isConnected = false;
}
}
}
我該如何避免切換並優雅地讓它完成斷開連接呼叫?
在輔助線程中,我有一個無盡的while循環調用receive()來檢查消息,並在那個接收調用中有一個阻塞recv()等待消息。我如何在插座上等待時發出信號? – user963241 2010-12-04 17:28:19