-1

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

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

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

4

3 回答 3

2

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

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

于 2013-01-24T18:12:32.923 回答
1

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

于 2013-01-24T22:23:07.177 回答
-1

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

  1. 服务器分叉 n 个进程,在 192.168.0.(10+i):9999.(i = 0 to n-1) 上监听回声
  2. 客户端尝试连接 192.168.0.10:9999,如果失败(192.168.0.10 没有更多可用端口因此无法建立连接),则尝试连接 192.168.0.11:9999 等等。

至于如何将多个 IP 绑定到单个 NIC,请查看:http: //community.spiceworks.com/how_to/show/1782-bind-multiple-ips-to-one-nic-in-linux

于 2013-01-24T13:11:25.137 回答