bind() 在 C 中修改 sin_port 吗?
Does bind() modify sin_port in C?
bind()
中的linux函数可以修改参数吗?我问这个是因为 sin_port
为 0 意味着 OS 将选择端口,我想在这次调用后得到这个端口。
不,它不修改参数。相反,您在绑定后使用 getsockname
来找出您获得的端口。
您还可以在 connect
之后使用 getsockname
来获取本地端口分配 和 本地地址(如果您有多个地址)对应到远程主机的路由。这甚至适用于 connect
实际上不发送任何数据包并且仅在逻辑上绑定地址的 UDP。
bind()
中的linux函数可以修改参数吗?我问这个是因为 sin_port
为 0 意味着 OS 将选择端口,我想在这次调用后得到这个端口。
不,它不修改参数。相反,您在绑定后使用 getsockname
来找出您获得的端口。
您还可以在 connect
之后使用 getsockname
来获取本地端口分配 和 本地地址(如果您有多个地址)对应到远程主机的路由。这甚至适用于 connect
实际上不发送任何数据包并且仅在逻辑上绑定地址的 UDP。