OpenEdv-开源电子网

标题: lwip 建立TCP客户端时,不动态分配本地端口 [打印本页]

作者: 触电丶    时间: 2016-10-8 10:18
标题: lwip 建立TCP客户端时,不动态分配本地端口
最近这两天,在做EtherNet/IP协议。STM32作为客户端,连接远程服务端。现在遇到一个问题,在建立TCP客户端时,远程端口为44818,分配的本地端口一直为49153。按照我对TCP的了解,本地端口应该是动态分配的,为什么这里是固定的一个呢?
有没有大虾能够帮忙解决一下动态分配的问题呢?


作者: 触电丶    时间: 2016-10-8 10:18
已经解决,在端口分配的地方,加随机数
作者: ysq7120    时间: 2016-10-8 11:09
tcp的端口由tcp_new_port函数生成,默认初始值是0xC000,+1不就是49153吗,除非你多次生成才会变。程序跑起来如果就一个tcp那么肯定这个值。
本地端口多少由不影响你建立连接。
作者: ysq7120    时间: 2016-10-8 11:11
默认初始值是0xC000,是指tcp_port这个全局变量。在tcp_new_port用到,自己看代码吧
作者: 正点原子    时间: 2016-10-8 18:38
帮顶
作者: 北宸xyz    时间: 2018-1-26 14:04
我也碰到这个问题
作者: langcai    时间: 2019-7-8 16:12
我也是这种问题
作者: agoodog    时间: 2020-8-12 10:00
我也遇到类似问题,第一次连的时候是49153,如果断开重新连接的话就是49154,然后每次加1,现在有个问题,49153端口已经释放了吗?
假如网络一直重连,每次端口+1,如果把所有端口号都使用完了会出现什么情况??前面使用的端口号有没有释放掉??




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4