UDP套接字绑定任意IP?(通配符-特殊)



我正在一个套接字项目上工作,现在我将为服务器端制作一个UDP侦听器。我看过一些例子,我不能理解这一点;为什么我们要绑定UDP套接字像"套接字"。绑定(新IPEndPoint ( IPAddress。任何, 3000));"?也就是说:在TCP套接字中,我们只绑定本地ip,但在UDP套接字中,我们绑定IPAddress.Any。我们为什么要这么做?

编辑:通配符和特定IP地址是什么?我们如何使用它们?

我发现了这个,我想我正在寻找它:)

通配符是一个特殊的本地IP地址。它通常表示"任何"和只能用于绑定操作。

该IP地址的值为0.0.0.0。如果你有两个网络适配器,一个IP地址为1.1.1.1,一个IP地址为2.2.2.2,然后,您可以创建侦听套接字并将其绑定到1.1.1.1,以便套接字不会绑定到2.2.2.2。你也可以创建一个监听Socket并将其绑定到2.2.2.2,这样它就不会绑定到1.1.1.1。如果你不关心并希望你的套接字绑定到所有的网卡,然后将其绑定到通配符地址。

另一个特殊值是127.0.0.1,表示只有客户端打开同一台计算机可以连接到您的服务器。

Link: InetSocketAddress中的通配符地址是什么意思?

可以将TCP和UDP套接字绑定到通配符地址(INADDR_ANYIN6ADDR_ANY_INIT)或特定地址。没有理由将TCP套接字绑定到特定的IP地址,而将UDP套接字绑定到通配符地址。

最新更新