1

我有两个独立的 exe 的 Parent.exe 和 Child.exe。

Parent.exe 打开 Child.exe,用户在 child.exe 中执行一些操作,然后 child.exe 将一些处理后的数据发送回 Parent.exe。两个exe都在同一台机器上

Child.Exe 和 Parent.Exe 之间的通信是通过 TCP IP(套接字编程)完成的。为此,我们需要计算本地 IP 地址,我们使用以下方式计算它:-

       string hostname = Dns.GetHostName();

       IPHostEntry ipEntry = Dns.GetHostEntry(hostname);
       IPAddress[] addr = ipEntry.AddressList;
       string FinalIpAddrs = addr[0]

在 XP 上一切正常,但在 Windows 7 上我们遇到了问题。下面的行返回 Mac 地址 正确的方法是什么,以便它可以在 XP 和 Win7 上运行?

       string FinalIpAddrs = addr[0]
4

3 回答 3

4

哦,那些编程和不知道的。

  • 您不需要知道 IP 地址,使用 127.0.0.1,这是一个本地环回地址。像这样简单 - 正是出于这个原因。

  • 考虑高效。如果都是同一台机器,那么 TCP 的使用很糟糕。使用命名管道,这是一种 Windows 集成的通信机制,可以跨机器工作,但在同一台机器上它使用比 TCP 更有效的共享内存。

于 2012-07-06T06:26:47.953 回答
4

为什么不直接使用IPAddress.Loopback(或IPv6Loopback)?

环回地址设计用于完全在同一主机上进行通信。


我也猜你在哪里说:

以下行返回 Mac 地址

您的实际意思是它返回一个 IPv6 地址。该代码不可能返回 MAC 地址。

于 2012-07-06T06:27:12.643 回答
1

是否有不使用 127.0.0.1 的特定要求?如果没有,那么我会直接使用它而无需任何计算。

于 2012-07-06T06:25:46.657 回答