我正在开发一个socket项目,现在我将为服务器端创建一个UDP监听器。我看了一些例子,我无法理解这一点;为什么我们必须绑定UDP套接字,如“socket.Bind(new IPEndPoint( IPAddress.Any ,3000));”?即:在TCP套接字中,我们仅绑定本地ip,但在UDP套接字中,我们绑定IPAddress.Any。为什么我们这样做?
编辑:通配符和特定IP地址是什么?我们怎样才能使用它们?答案 0 :(得分:1)
我找到了这个,我想我正在寻找它:)
通配符是一个特殊的本地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,意味着只有客户端 同一台计算机可以连接到您的服务器。
答案 1 :(得分:0)
您可以将TCP和UDP套接字绑定到通配符地址(INADDR_ANY
或IN6ADDR_ANY_INIT
)或特定地址。在将UDP套接字绑定到通配符地址时,通常没有理由将TCP套接字绑定到特定的IP地址。