简介: 我开发了一个用C#开发的服务器(TCP侦听器)程序,它在特定(常量)端口的特定(常量)IP上运行.该服务器程序接收客户端程序发送的数据包,对其进行处理并将数据包发送回同一个套接字.虽然此服务器的客户端程序数量可能为数百个:
代码示例
while(true)
{
socket = Host.AcceptSocket();
int len = socket.Receive(msgA);
performActivities(msgA); // May take up-to 5 seconds
socket.Send(msgB);
socket.Close();
}
Run Code Online (Sandbox Code Playgroud)
问题: 由于一些关键的业务需求,处理可能需要5秒钟,因此在此期间的其他请求排队,我需要避免,以便每个请求必须在不超过5秒的时间内受理.
查询: 我可以让它多线程但是(请原谅我,如果你找到我新手):
构建高效的多线程套接字服务器需要该领域的强大知识和技能.我的建议不是尝试从头开始构建自己的TCP服务器,而是使用已经解决了这个问题的现有库之一.我想到的几件事是:
这些库中的每一个都包含以下内容:
byte[]为每个包装分配新的效率非常低,并导致很多GC压力.编写生产就绪的 TCP服务器是一项巨大的工作.除非您是具有特定要求的网络编程专家,否则不应该从头开始编写.