构建TcpListener
有三个重载:
public TcpListener(int port);
(过时)public TcpListener(IPEndPoint localEP)
public TcpListener(IPAddress localaddr, int port)
我希望监听特定端口,但是所有可用接口。那里有 过载,但它被标记为obsolete
。
在.NET中使用TcpListener
的所有接口上侦听特定端口的新首选/非过时方法是什么?
为了乐于助人,IPEndPoint
是:
public IPEndPoint(
IPAddress address,
int port
)
这是第三次重载。并IPAddress
作为构造函数:
byte[]
Int64
byte[]
和Int64
答案 0 :(得分:20)
只需绑定到IPAddress.Any
- 这通常就是这样做的...不确定,但也可能需要绑定到IPAddress.IPv6Any
。
此SO post表示您明确绑定到每个IP地址 - 此SO post包含有关如何获取所有IP地址的代码......
来自MSDN:
如果您不关心分配了哪个本地地址,请为localaddr参数指定
IPAddress.Any
,基础服务提供商将分配最合适的网络地址。
来自MSDN:
IPAddress.Any 字段
提供一个IP地址,指示服务器应在所有网络接口上侦听客户端活动。