如何将超过端口数的用户连接到单个服务器?

时间:2013-01-24 09:15:02

标签: networking tcp client-server port

根据谷歌以下是关于港口使用的事实:

  

众所周知的端口是从0到1023的端口。已注册   端口是1024到49151动态和/或私有端口   端口是49152到65535的端口

如何将超过65535个用户连接到单个服务器。因为我们需要为每个新的监听连接提供一个套接字?那么它不会为每个连接在本地创建一个新端口吗?

3 个答案:

答案 0 :(得分:2)

单个连接由对IPserver定义:server_port和IPclient:client_port。鉴于您的server_port只是一个并且是固定的,并且您的客户端由IPclient:client_port定义,它给出理论范围为2 ^ 48(32个IPv4 + 16个PORT)不同的客户端,因此您可以有2 ^ 48个并行连接到单个服务器。

限制是您无法从单个IP设置超过2 ^ 16个连接到单个服务器。

答案 1 :(得分:1)

到侦听端口的所有传入连接都使用该端口。所以你的问题不存在,除非你的意思是你想要来自同一个客户端主机的超过65535个连接,这是一个奇怪的要求。

答案 2 :(得分:-1)

一个IP地址只能容纳2个字节的端口,如TCP和UDP协议中所定义。一种可能的解决方法可能是这样的:

  1. 服务器fork n进程,回显侦听192.168.0。(10 + i):9999。(i = 0到n-1)
  2. 客户端尝试连接192.168.0.10:9999,如果失败(192.168.0.10没有可用的端口,因此无法建立连接),然后尝试192.168.0.11:9999等等。
  3. 关于如何将多个IP绑定到单个NIC,请检查:http://community.spiceworks.com/how_to/show/1782-bind-multiple-ips-to-one-nic-in-linux