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

C# UDP套接字绑定任何IP?(通配符-特殊),c#,sockets,udp,ip,bind,C#,Sockets,Udp,Ip,Bind,我正在进行一个套接字项目,现在我将为服务器端创建一个UDP侦听器。我看了一些例子,我不明白这一点;为什么我们必须像“socket.bind(new-IPEndPoint(IPAddress.Any,3000));”那样绑定UDP套接字?即:在TCP套接字中,我们只绑定本地ip,而在UDP套接字中,我们绑定的是IPAddress.Any。我们为什么要这样做 编辑:什么是通配符和特定IP地址?如何使用它们?您可以将TCP和UDP套接字绑定到通配符地址(INADDR\u ANY或IN6ADDR\u A

我正在进行一个套接字项目,现在我将为服务器端创建一个UDP侦听器。我看了一些例子,我不明白这一点;为什么我们必须像“socket.bind(new-IPEndPoint(IPAddress.Any,3000));”那样绑定UDP套接字?即:在TCP套接字中,我们只绑定本地ip,而在UDP套接字中,我们绑定的是IPAddress.Any。我们为什么要这样做


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

您可以将TCP和UDP套接字绑定到通配符地址(
INADDR\u ANY
IN6ADDR\u ANY\u INIT
)或特定地址。当您将UDP套接字绑定到通配符地址时,没有理由通常将TCP套接字绑定到特定IP地址。

您可以将TCP和UDP套接字绑定到通配符地址(
INADDR\u ANY
IN6ADDR\u ANY\u INIT
)或特定地址。没有理由解释为什么您通常会将TCP套接字绑定到特定的IP地址,而将UDP套接字绑定到通配符地址。

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

通配符是一个特殊的本地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,这意味着只有 同一台计算机可以连接到您的服务器


链接:

我找到了这个,我想我是在找它:)

通配符是一个特殊的本地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,这意味着只有 同一台计算机可以连接到您的服务器


Link:

我认为这可以澄清UDP的任何错误。“在TCP套接字中,我们只绑定到本地IP”是不正确的。您通常也会将侦听套接字绑定到任意端口。不是真正的问题。@EJP OK。我需要了解为什么我们需要使用任何Ip或特殊Ip。你能帮我个忙吗?我想这可以澄清UDP的任何错误。“在TCP套接字中,我们只绑定到本地IP”是不正确的。您通常也会将侦听套接字绑定到任意端口。不是真正的问题。@EJP OK。我需要了解为什么我们需要使用任何Ip或特殊Ip。您能帮助我吗?当然,您希望绑定到通配符地址而不是特定地址的原因有很多,但它们与您使用的是TCP还是UDP无关。它真的是正交的…好的。你能告诉我吗?为什么我需要使用通配符以及为什么我需要使用特定地址?如果您希望接收发送到本地系统上任何IP地址的数据包(包括环回
127.0.0.1
::1
),那么您将绑定到通配符地址。如果您只想接收发送到某个地址的数据包,则可以绑定到该地址。这对TCP和UDP都是有效的(除了使用绑定到通配符的UDP套接字以及发送和接收都可能很棘手)。如果我从其他城市(通过互联网)发送数据,我应该绑定什么?我想从其他城市(而不是本地)发送数据。我需要做什么?当然,您希望绑定到通配符地址而不是特定地址的原因有很多,但它们与您使用的是TCP还是UDP无关。它真的是正交的…好的。你能告诉我吗?为什么我需要使用通配符以及为什么我需要使用特定地址?如果您希望接收发送到本地系统上任何IP地址的数据包(包括环回
127.0.0.1
::1
),那么您将绑定到通配符地址。如果您只想接收发送到某个地址的数据包,则可以绑定到该地址。这对TCP和UDP都是有效的(除了使用绑定到通配符的UDP套接字以及发送和接收都可能很棘手)。如果我从其他城市(通过互联网)发送数据,我应该绑定什么?我想从其他城市(而不是本地)发送数据。我需要做什么?