127.0.0.1与IP地址不同吗?

时间:2013-12-09 22:00:08

标签: c# networking ip localhost

  1. 我使用127.0.0.1和#创建一个c#套接字。现在我创建一个本地客户端(它在与服务器相同的机器上本地运行)并尝试使用机器的fqdn进行连接。它不起作用。如果我使用127.0.0.1代替fqdn用于客户端,它可以工作。 反之亦然,如果我使用本地机器的fqdn和port#创建服务器,并且如果客户端使用127.0.0.1,则它不起作用。如果我在客户端使用fqdn,那么事情就可以了。这让我想到机器自己的IP地址/ fqdn和127.0.0.1之间的区别是什么,因为我在印象中他们都会引用同一台机器。

  2. 对于C#UdpClient,我们只指定端口号。那么c#如何解决这个问题?

  3. 如果一台机器有多个网卡并且我们只是指定端口号(例如UdpClient),那么用什么网卡来创建端口?

2 个答案:

答案 0 :(得分:1)

IP地址127.0.0.1是每台计算机上存在的本地环回虚拟网络适配器的地址。此虚拟适配器完全在操作系统内部,无法从其他地方连接。在同一台机器上运行的程序可以相互通信,但没有别的。

使用FQDN连接到计算机时,名称将解析为属于该名称的IP地址,通常是连接到外部网络适配器的地址。我们假设您计算机的网络地址为192.168.0.2。当您尝试连接到该地址的任何端口时,它将从不连接到正在监听127.0.0.1的程序,而不是连接到侦听地址{{1 }}

地址非常重要。

如果您希望编程接受连接到计算机的任何网络适配器上的连接,请将其绑定到每个地址:192.168.0.3

答案 1 :(得分:0)

  1. 您的客户端解析可能指向另一个接口的FQDN,而不是环回。他们确实推荐使用同一台机器,但它们是不同的接口。
  2. According to MSDNUdpClient将收听“默认界面”
  3. 再次,无论微软定义为“默认界面”。实际上,这意味着如果您监听一个IP地址,您将只获得该IP的流量。
相关问题