构造 TcpListener 有三个重载:

  • public TcpListener(int port); (已淘汰)
  • public TcpListener(IPEndPoint localEP)
  • public TcpListener(IPAddress localaddr, int port)

  • 我想在特定端口上监听,但是在上所有可用的接口(interface)上。有一个重载可用于执行此操作,但已将其标记为obsolete

    在.NET中使用 TcpListener 在所有接口(interface)上监听特定端口的新的首选/非废弃方法是什么?

    为了帮助起见, IPEndPoint 是:
    public IPEndPoint(
        IPAddress address,
        int port
    )
    

    这就是第三重载。并将 IPAddress 用作其构造函数:
  • 一个byte[]
  • Int64
  • 一个byte[]和一个Int64
  • 最佳答案

    只需绑定(bind)到 IPAddress.Any -这通常是这样做的...不确定,但是可能您也需要绑定(bind)到 IPAddress.IPv6Any

    这个SO post建议您明确绑定(bind)到每个IP地址-这个SO post包含有关如何获取所有IP地址的代码...

    MSDN:



    MSDN:

    IPAddress.Any字段

    10-08 20:13