我正在製作一個簡單的聊天服務器,並且只是爲了讓每個連接都在新線程上運行。無法獲得服務器套接字關閉
舊版本爲服務器啓動了一個單線程,它做了一個while循環,當發送停止消息然後關閉套接字時,它將停止。
新版本永遠循環併爲每個新連接創建一個新線程。現在我無法關閉套接字連接。
如果按下某個鍵並停止主線程,則該插口保持打開狀態。因此,當我再次運行程序時,我需要更改套接字號。服務器的
代碼
while(true)
{
///////////////////////////////////////////////////
// get a new connection
///////////////////////////////////////////////////
System.out.println("Aceepting connections on port 1030 \r");
try{
// Get New Connection
// wait for ever on accepting new connections
server.setSoTimeout(0);
connection=server.accept();
cConnection thread = new cConnection("thread3", connection);
} catch(IOException ec)
{
System.out.println(ec.getMessage());
}
}
代碼啓動服務器
現在每個郵件進入一個新的線程,所以我不能告訴它停止並關閉套接字。