我正在使用HTTPURLConnection并想知道如何处理端口问题?我的意思是这个类使用底层的套接字,但是客户端套接字的端口号是如何在内部分配的?有任何想法吗 ?HTTPURLConnection端口号分配
Thx
我正在使用HTTPURLConnection并想知道如何处理端口问题?我的意思是这个类使用底层的套接字,但是客户端套接字的端口号是如何在内部分配的?有任何想法吗 ?HTTPURLConnection端口号分配
Thx
它不是。它完全取决于操作系统。
创建套接字时,必须考虑是否要打开服务器套接字或客户端套接字。
服务器套接字是opend,并在那里等待传入请求来启动“对话”。所以它需要一个客户端已知的端口号。出于这个原因,有几个服务具有“知名端口”,例如HTTP是端口80等。
客户端套接字是在创建服务器套接字时开始的。在这种情况下,服务器不需要提前知道客户端的端口号 - 它会在第一个传入请求时收到它。因此,当打开一个客户端套接字时,操作系统将从未使用的端口列表中选择一个随机端口(查找“临时端口”),并在通话完成后经常关闭它。
这种情况类似于ip-adresses:客户端需要知道服务器的ip-address来联系它,但服务器不需要知道每个客户端的ip地址。
但是,如果您不通过URL传递端口号,则无法分配它。如果可能的话,您可以请您详细说明您的陈述,例如在Unix中? – zgulser
无论如何您都无法指定它。 URL中的端口号是*目标*端口。您询问的端口号是* local *端口。你无法控制它。你不需要控制它。这里没有问题需要解决。 – EJP
我明白你的观点。我不需要知道,是的。但我只是想知道引擎盖下的东西。不管怎么说,还是要谢谢你。 – zgulser