![](/img/trans.png)
[英]How can I find a TCP port that is free with NetTcpBinding (WCF) (so a server can bind to it)
[英]How can I find an unused port?
我需要创建一个脑死亡的HTTP服务器,为localhost上的所有内容返回404。 具体来说,我有一个程序在验收测试工具下调用服务器,但为了测试我想通过跳过那个无关的检查来节省时间。
我有办法传入程序用作测试工具一部分的URL,测试工具(当前)只是在端口80上创建这样的服务器。
但是,如果多个测试尝试同时运行,则会出现问题,因为每个测试工具都尝试在端口80上创建一个HTTP服务器,该服务器对其中一个线束失败。
因此,我想在尝试创建HTTP服务器之前随机化端口并确保它可用。 如何检查该端口是否正在使用?
将套接字绑定到端口0,系统将选择一个可用端口,我相信在1024和5000之间
您可以稍后使用Socket.LocalEndPoint
属性了解分配的端口。
我认为答案是显而易见的:如果套接字监听失败,它就不可用:选择另一个。 听听例外情况。
为什么不完全嘲笑请求,以便您根本不需要服务器或网络连接?
这将使一个不那么脆弱的测试。
好的,在任何情况下,您是否可以在某个预定义范围内生成随机端口,并尝试在其上设置服务器? 如果它已被占用,则应抛出异常。
Socket.Select()
IIRC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.