bind()是否在C中修改sin_port?

问题描述 投票:1回答:1

Linux中的bind()函数可以修改其参数吗?我问这个问题是因为sin_port为0表示操作系统将选择端口,并且我希望在此调用后获得此端口。

c networking posix systems-programming
1个回答
2
投票

否,它不会修改参数。而是在绑定后使用getsockname来查找您获得的端口。

您还可以在getsockname之后使用connect来获取本地端口分配与到远程主机的路由相对应的本地地址(如果您有多个地址)。即使在connect实际不发送任何数据包,而仅在逻辑上绑定地址的UDP上也可以使用。

© www.soinside.com 2019 - 2024. All rights reserved.