[英]Best perl method to determine if a TCP port is available
使用perl确定tcp端口是否可用的最佳方法是什么。 我想在创建网络服务之前选择一个端口。 这是使用自动化完成的,并且要求是为服务构建配置,包括服务使用的范围内的可用tcp端口。
正在考虑的可能方法:
什么是最好的方法,为什么? 我不太喜欢测试绑定,因为它需要root用于特权端口,如果脚本出现问题,它可能会将所有测试端口留在time_wait中。 我喜欢Linux :: Proc :: Net :: TCP,因为它速度快但不便携。
bind
将立即并具体告诉您端口是否不可用( EADDRINUSE
)。 其他选择没有任何意义。
因为听起来你实际上并不关心你绑定的端口,在我看来,更好的方法是bind
到端口0
,它绑定到可用端口。 您可以使用sockaddr_in
确定套接字绑定到的端口。
另一方面,如果所需的端口在1..1023之内,那么您只需为您的程序保留端口即可。 系统不会自动为这些端口分配服务。 (我不确定在Windows上是否属实。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.