Tcp服务器需要为很多客户端提供服务,如果一个客户端有一个服务器端口和一个服务器线程来监听端口,我想知道天气更快吗?
如果一个端口是好的,在这种情况下有人可以解释一个端口和多个端口之间的不同,谢谢!
答案 0 :(得分:2)
使用多个端口实现此目的的问题是每个客户端都将具有特定的端口号。根据客户的数量,可能会涉及大量的簿记。
通常,对于要为多个客户端提供服务的tcp服务器,您有一个“主”线程,该线程侦听端口并接受该端口上的连接。该线程然后将连接的套接字传递给另一个线程进行处理并返回监听。
对于丰富的Unix网络编程知识,请查看“The Stevens Book”
答案 1 :(得分:1)
通常说话*服务器将为每个连接的客户端分配自己的传出套接字(并且您不需要知道这些数字)。每个客户端连接句柄都将保存它的端口引用。
定义服务器连接端口时,您将为要连接的传入客户端分配套接字。使用多个套接字没有性能优势,实际上分配额外的套接字会显示性能损失(尽管每个端口都会很小。)
顺便说一句,为客户端分配多个传入端口(特别是大范围)也是疯狂的。从使服务可用和可维护的角度来看。