我正在使用套接字。我想知道有多少人可以使用套接字连接到我的SocketServer?有多少人可以连接到ServerSocket?
根据卡梅伦,它是2^16不同的连接。因此,多达2^16人可以同时使用我的聊天(处理这么多用户的资源以及其他因素都不被考虑)。
https://www.quora.com/How-many-connections-can-a-JAVA-socket-server-hold
我正在使用套接字。我想知道有多少人可以使用套接字连接到我的SocketServer?有多少人可以连接到ServerSocket?
根据卡梅伦,它是2^16不同的连接。因此,多达2^16人可以同时使用我的聊天(处理这么多用户的资源以及其他因素都不被考虑)。
https://www.quora.com/How-many-connections-can-a-JAVA-socket-server-hold
的理论极限为2^16 - 1.端口零被保留。
实际限制将是平台特定的,只能通过测试来确定。
的限制因素包括:
其中大多数最有可能是硬件限制。
的50人在上述评论谈话的限制是连接请求,可以是排队的数量。如果你的Java应用程序调用ServerSocket.accept()
足够快,请求将不会被丢弃。
在Mac和Linux上,您可以执行“ulimit”,它会告诉您操作系统定义的限制。
卡梅隆看起来贡献了很多,但没有什么比测试时真实的测试证明什么是真实的。构建测试并执行它不应该花很长时间。在向应用程序添加功能时,您需要添加到测试套件中,并在部署之前祝福其结果。 – jeff6times7
另外一个快速提醒,'ServerSocket'的最大队列大小是50个传入连接,以及任何被阻塞的过去。我认为假设你已经*接受了*与这个问题的联系,但是我认为如果你期望有大量的用户可能会发表评论。 – Dewick47
@ jeff6times7因此,从理论上讲,只用一个ServerSocket就可以处理如此庞大的用户数? – Steve