2011-10-04 35 views
1

如何使用Delphi找到一个空闲的套接字端口? 据我所知,有一个函数bind() - 但我不知道如何使用它。空闲的套接字端口。 Delphi

+0

客户端不需要知道要连接的端口号吗?我个人从这个列表中选择一个不使用的:http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml – Misha

回答

1

您尝试登录bind,直到找到空闲的。也就是说,直截了当地 - 您从某个值开始并递增,直到bind成功。

+6

如果您在调用时指定端口0 'bind()',它为你自动选择一个空闲端口,然后你可以使用'getsockname()'来找出它选择的端口。没有必要手动搜索端口(除非你想限制端口范围),它有一个无竞争的竞争条件。 –

+0

这是真的,谢谢你的纠正。如果你不关心端口号,这是最好的方法。如果您有偏好,例如首选端口范围,则可能仍需要寻找。 –