bind() 在 C 中修改 sin_port 吗?

Does bind() modify sin_port in C?

bind()中的linux函数可以修改参数吗?我问这个是因为 sin_port 为 0 意味着 OS 将选择端口,我想在这次调用后得到这个端口。

不,它不修改参数。相反,您在绑定后使用 getsockname 来找出您获得的端口。

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