1
我有問題,聽了一的TCPListener內的連接,基本上我在不同的線程運行此像這樣:線程拋出StackoverflowException
listenThread = new Thread(new ThreadStart(Listen));
void Listen(...)
{
while (true)
{
Socket socket = Listener.AcceptSocket();
Connection connection = new Connection(socket);
connection.onInit();
Thread.Sleep(100);
Listen();
}
}
我不知道下一步該怎麼做解決這個「Stackoverflow」異常,我需要聽聽不同的線程上的連接,就像我編寫它的方式,有任何解決它的建議?
這不會讓我的線程繼續監聽其他傳入的連接。 – 2014-12-07 04:35:21
然後你可能會有一個設計缺陷! – 2014-12-07 04:35:41
@RaúlSanpedro:是的,當然會。你的方法只是循環,反覆調用'Accept()'。這可以。當然,你需要調用Receive()來接收數據。對於具有網絡功能的程序,除了接受入站連接請求還有很多。但是你至少可以避免在你的Listen()方法中進行無限遞歸調用。 :) – 2014-12-07 04:36:56