代码之家  ›  专栏  ›  技术社区  ›  Billy ONeal IS4

如何找到未使用的端口?

  •  3
  • Billy ONeal IS4  · 技术社区  · 14 年前

    我需要创建一个大脑死亡的HTTP服务器,它返回404s来处理localhost上的所有内容。具体来说,我有一个接受测试工具下的程序,它调用服务器,但是对于测试,我想通过跳过不相关的检查来节省时间。

    我有一种方法可以传递程序用作测试工具一部分的URL,而测试工具(当前)只是在端口80上创建这样一个服务器。

    但是,如果多个测试尝试同时运行,则会出现问题,因为每个测试线束都尝试在端口80上创建HTTP服务器,但其中一个线束失败。

    因此,在尝试创建HTTP服务器之前,我希望随机分配端口并确保它可用。如何检查该端口是否正在使用?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Amadan    14 年前

    我认为答案是显而易见的:如果套接字侦听失败,它就不可用:选择另一个。听听例外情况。

        2
  •  11
  •   nos    14 年前

    将套接字绑定到端口0,系统将选择一个可用的端口,我相信介于1024和5000之间

    稍后您可以使用 Socket.LocalEndPoint

        3
  •  0
  •   Lasse V. Karlsen    14 年前

    为什么不完全模拟这个请求,这样实际上就不需要服务器或网络连接了呢?

        4
  •  -1
  •   leppie    14 年前
    Socket.Select()
    

    IIRC公司