我上实现用C Linux上的特殊目的TCP服务器计划。在做了一点研究后,看起来有几种方法可以做到这一点,包括单线程,每个连接一个线程和其他方法。对于套接字,有数据报vs流等选项,阻塞与非阻塞。良好的架构适度简单的TCP服务器
大部分的通信是要看起来像:
Client: request id [request info]
Server: status id [response info]
或
Client: request id [request info]
Server: status id [response info]
Client: additional request id [request info]
Server: status id [response info]
这里的一切是< 1kB的大部分东西都是< 512B。但是,在短时间内可能会有很多个人请求。
那么,我该如何设置服务器,所以其工作效率最高(即不生猪资源,不否认的客户端请求)?
生成响应需要很长时间吗? – cnicutar
TCP意味着您正在使用流。数据报是UDP。 – duskwuff
你有没有关于带宽,连接数量的想法?如果服务器没有被加载,为什么不考虑使用现有的协议(可能是HTTP,XMLRPC或SNMP等)?我会建议使用文本消息(Json,....),因为它们更易于调试。 (查看SCGI的简单协议示例)。 –