(这个问题的灵感来自对此主题的回应:How WebSocket server handles multiple incoming connection requests?)
我的理解是这样的:
假设客户端IP = 1.1.1.1,服务器IP = 9.9.9.9
浏览器选择随机本地可用端口,例如5555,并启动与服务器端口80的连接。因此,在客户端上,socketfd_client
应代表(1.1.1.1:5555, 9.9.9.9:80, TCP)
之类的IP连接。
服务器在其端口80上调用accept()
并识别来自客户端的连接请求。然后,服务器选择一个随机的本地可用端口,例如8888,以满足该连接请求。因此,在服务器上,socketfd_server
应代表(1.1.1.1:5555, 9.9.9.9:8888, TCP)
之类的IP连接。
我的问题是:
如果我的上述理解是正确的,socektfd_client
和socketfd_server
有不同的服务器端口。客户端有80,而服务器有8888.如何进行通信?我认为客户端应该改为使用服务器端口8888,但是何时以及如何使用?
答案 0 :(得分:4)
浏览器选择随机本地可用端口,例如5555
没有。 操作系统执行此操作:具体而言,是网络堆栈的TCP部分。
并启动与服务器端口80的连接。因此,在客户端,socketfd_client应代表IP连接,如(1.1.1.1:5555,9.9.9.9:80,TCP)。
正确。
服务器在其端口80上调用accept()并识别来自客户端的连接请求。
正确。
然后服务器选择一个随机的本地可用端口,比如8888
没有
完成该连接请求。
没有
所以在服务器上,socketfd_server应代表一个IP连接,如(1.1.1.1:5555,9.9.9.9:8888,TCP)。
没有。两端的连接由{1.1.1.1:5555, 9.9.9.9:80}
表示。服务器端没有新端口。
我的问题是:
如果我的上述理解是正确的
不是。
socektfd_client和socketfd_server有不同的服务器端口。
没有
客户端有80,而服务器有8888.如何进行通信?我认为客户端应该改为使用服务器端口8888,但是何时以及如何使用?
从不。