问题描述
(这个问题的灵感来自对这个主题的回应:)
(This question is inspired by a response to this thread: How WebSocket server handles multiple incoming connection requests?)
我的理解是这样的:
假设客户端IP = 1.1.1.1,服务器IP = 9.9.9.9
Assume client IP = 1.1.1.1, server IP = 9.9.9.9
-
浏览器选择随机本地可用端口,比如5555,并启动与服务器端口80的连接。所以在客户端,
socketfd_client
应代表一个IP连接,如(1.1.1.1:5555, 9.9.9.9:80,TCP)
。
Browser choose a random local available port, say 5555, and initiate a connection to server's port 80. So on client, the
socketfd_client
should represent an IP connection like(1.1.1.1:5555, 9.9.9.9:80, TCP)
.
服务器调用 accept()
在其端口80上并识别来自客户端的连接请求。然后,服务器选择一个随机的本地可用端口,例如8888,以满足该连接请求。所以在服务器上, socketfd_server
应代表一个IP连接,如(1.1.1.1:5555,9.9.9.9:8888,TCP)
。
Server calls accept()
on its port 80 and identified the connection request from client. Then server picks a random local available port, say 8888, to fulfill that connection request. So on server, the socketfd_server
should represent an IP connection like (1.1.1.1:5555, 9.9.9.9:8888, TCP)
.
我的问题是:
如果我的上述理解是正确的, socektfd_client
和 socketfd_server
有不同的服务器端口。客户端有80,而服务器有8888.如何进行通信?我认为客户端应该改为使用服务器端口8888,但是何时以及如何使用?
If my above understanding is correct, socektfd_client
and socketfd_server
have different server port. Client has 80 while server has 8888. How could the communication be carried out? I think client should change to use the server port 8888 as well, but when and how?
推荐答案
否。 操作系统执行此操作:具体而言,是网络堆栈的TCP部分。
No. The operating system does that: specifically, the TCP part of the network stack.
正确。
正确。
否。
否。
没有。两端的连接由 {1.1.1.1:5555,9.9.9.9:80}
表示。服务器端没有新端口。
No. The connection at both ends is represented by {1.1.1.1:5555, 9.9.9.9:80}
. There is no new port at the server end.
如果我的上述理解是正确的
If my above understanding is correct
不是。
否。
从不。
这篇关于浏览器如何在80端口上与Web服务器建立连接?细节?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!