[問題] socket and thread
各位先進好。
有一個關於在thread 裡進行listen的問題想請教大家。
以下是一個 thread.start() 之後去執行的 function
public void ListenForClients()
{
_tcpListener.Start();
try
{
while (_listenFlag)
{
//blocks until a client has connected to the server
TcpClient handler = _tcpListener.AcceptTcpClient();
.....
}
}
}
當我server想要關閉的時候,如果這時候沒有任何client正要連進來,
則thread的程式會一直 block 在 AcceptTcpClient() 裡等待連線,
所以即使我把_listenFlag 設程 false也沒用。
在此架構下,(就是不用pendding()去偵測),
請問有什麼方法可以讓 thread 從block 狀態裡跳出來呢 ?
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.103.214
推
10/26 18:29, , 1F
10/26 18:29, 1F
→
10/26 19:24, , 2F
10/26 19:24, 2F
→
10/26 19:59, , 3F
10/26 19:59, 3F
推
10/28 07:55, , 4F
10/28 07:55, 4F
→
10/28 07:56, , 5F
10/28 07:56, 5F
→
10/28 07:57, , 6F
10/28 07:57, 6F
→
10/28 07:58, , 7F
10/28 07:58, 7F