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