【发布时间】:2017-04-10 19:06:36
【问题描述】:
我在将端口值设置为 0 的地址上使用 bind()。我知道通过这种方式,它将随机端口绑定到该地址。但我只想要值 x 的端口,使得 (x >= 0 && x = 49152) 被选择,但我注意到,在可以选择的随机端口中,也有端口 > 49152 。 但是,如果我重新调用 bind() ,它会给出错误:无效参数。 如何重新调用 bind() 函数而不给出无效参数错误,或者如何以另一种方式解决此问题? 提前非常感谢。
【问题讨论】:
-
您的问题是关于tcp,而不是unix-sockets。
-
如果您知道要绑定()到哪个端口,您最好将该端口提供给 bind() 调用而不是 0。如果该端口已在使用中,则绑定( ) 调用将失败,然后您可以使用不同的端口号重试。
-
@EJP 似乎
unix-sockets是一个非常好的标签,它没有任何地方说它是关于 TCP 的;它也可能与 UDP 套接字有关。
标签: sockets tcp bind sockaddr-in