到目前为止,在大多数示例中,当服务器同时处理多个客户端时,将以以下代码为例
int port = 13000;
TcpListener server = new TcpListener(IPAddress.Any, port);
server.Start();
while (true) {
// Perform a blocking call to accept requests.
// You could also user server.AcceptSocket() here.
TcpClient client = server.AcceptTcpClient();
//Do stuff
}
为了增加重负载下的吞吐量,至少这是我希望达到的目标,我当时想在4个左右的线程中调用AcceptTcpClient方法。但是,我不确定这是否是线程安全的,还是建议使用它的方式?
我担心的情况是当我突然出现连接中断时,例如数百个客户端正在连接到我的服务器。此外,当我查看TcpClient的Start方法时,我也注意到了积压参数。使用积压是更好的方法?我应该只听一个线程,而将繁重的工作留给积压算法吗?