我有两个独立的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]
答案 0 :(得分:4)
哦,那些节目并且不知道。
您不需要知道IP地址,请使用127.0.0.1,这是本地环回地址。就像那样 - 就是出于这个原因。
考虑有效率。如果那是同一台机器,TCP的使用是不好的。使用命名管道,这是一个Windows集成的通信机制,可以跨机器工作,但在同一台机器上它使用的共享内存比TCP更有效。
答案 1 :(得分:4)
为什么不使用IPAddress.Loopback
(或IPv6Loopback
)?
环回地址专为完全在同一主机上进行通信而设计。
我也在猜你说的地方:
以下行返回Mac地址
你的意思是它正在返回一个IPv6地址。该代码无法返回MAC地址。
答案 2 :(得分:1)
是否有特定要求不使用127.0.0.1?如果不是,那么我只是在没有任何计算的情况下使用它。