服务器套接字究竟是如何工作的?

2022-09-04 22:27:09

服务器套接字究竟是如何工作的?当我创建一个java服务器套接字并接受端口1234的连接时。服务器是否实际对所有客户端都使用端口 1234?我读过,当你编写网络服务器时,一旦接受连接,套接字实际上会打开另一个端口。

这是真的吗?如果是这样,为什么我没有在netstat中看到它?我看到很多这样的联系

tcp        0      0 ::ffff:MY_IP:1234 ::ffff:97.37.134.95:39236   ESTABLISHED 
tcp        0      0 ::ffff:MY_IP:1234 ::ffff:89.204.153.101:26117 ESTABLISHED 
tcp        0      0 ::ffff:MY_IP:1234 ::ffff:195.240.16.70:26193  ESTABLISHED 
tcp        0      0 ::ffff:MY_IP:1234 ::ffff:80.187.98.116:15012  ESTABLISHED 
tcp        0      0 ::ffff:MY_IP:1234 ::ffff:218.78.248.190:30794 ESTABLISHED 

那么它们真的都连接到我的服务器1234吗?如果是这样,这是否意味着服务器将能够接受无限数量的连接?


答案 1

那么它们真的都连接到我的服务器1234吗?

是的

如果是这样,这是否意味着服务器将能够接受无限数量的连接?

您可以有 2^32-2-1 (IP4) 地址(留出一个地址,以便在同一网络上拥有另一台主机)和 2^16 个远程套接字端口。这是很多,但不是无限的。无论如何,你之前会耗尽内存。


答案 2

TCP/IP 套接字由元组唯一标识(本地地址、本地端口、远程地址、远程端口)。

这将提供非常大量的套接字,但不是无限的。


推荐