客户端端口分配

Posted thammer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了客户端端口分配相关的知识,希望对你有一定的参考价值。

  最近项目中发现客户端每次上电后的端口都是一样的,不过在不同的机器上它们之间上电后的端口又不一样。这种表现与我之前的理解的不一样:

若未指定客户端端口,则由系统随机分配

       按照我之前的理解,应该是每次上电的端口都会变化。而实际好像这个端口是根据网络协议栈的一些信息经过特定算法得到的。如果重启client端也会发现端口变化,一方面在关闭套接字的2MLS时间里,这个连接处于time_wait状态,端口被占用,所以协议栈分配另外的端口给client,另一方面协议栈的环境变化了,协议栈自动分配的端口也就会变化。可以看看connect源码中分配端口的函数inet_autobind,http://lib.csdn.net/article/computernetworks/38533

 

  阅读里面的介绍,也了解到了

    当bind的端口号小于1024,会要求root权限。

 

以上是关于客户端端口分配的主要内容,如果未能解决你的问题,请参考以下文章

java中如何检测本机指定的UDP服务端口是不是被占用?并且自动分配一个可用udp端口;

完成端口线程的 OutOfMemoryException

用python做了一个网络客户端, 如何指定我的发送端口? 就是不让系统随机分配。

SOCKET通信 客户端如何指定端口?

socket通讯怎么进行的?

Socket是如何通信的?