我'm working on a socket project and now I'将为服务器端创建UDP侦听器 . 我看了一些例子,我无法理解这一点;为什么我们必须绑定UDP套接字,如“socket.Bind(new IPEndPoint( IPAddress.Any ,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 . 您还可以创建一个侦听套接字并将其绑定到2.2.2.2,以便它不会绑定到1.1.1.1 . 如果您不关心并希望套接字绑定到所有网卡,则将其绑定到通配符地址 . 另一个特殊值是127.0.0.1,这意味着只有同一台计算机上的客户端才能连接到您的服务器 .
链接:What does wildcard address in InetSocketAddress mean?
您可以将TCP和UDP套接字绑定到通配符地址( INADDR_ANY 或 IN6ADDR_ANY_INIT )或特定地址 . 在将UDP套接字绑定到通配符地址时,通常没有理由将TCP套接字绑定到特定的IP地址 .
INADDR_ANY
IN6ADDR_ANY_INIT
2 回答
我找到了这个,我想我一直在找:)
链接:What does wildcard address in InetSocketAddress mean?
您可以将TCP和UDP套接字绑定到通配符地址(
INADDR_ANY
或IN6ADDR_ANY_INIT
)或特定地址 . 在将UDP套接字绑定到通配符地址时,通常没有理由将TCP套接字绑定到特定的IP地址 .