用于进程间通信的UDP

时间:2016-07-22 03:27:59

标签: c# .net udp

我目前有2个.Net应用程序同时在同一台PC上运行。

这两个应用程序使用UDP进行通信,如下所示:

客户端:

udpUnityToConsole = new UdpClient();
udpUnityToConsole.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
try
{
    udpUnityToConsole.Connect("localhost", 11004);
}

服务器:

unityUdpReceive = new UdpClient();
unityUdpReceive.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
unityUdpReceive.Client.Bind(new IPEndPoint(IPAddress.Any, 11004));

通信流快速可靠,只有一个问题,那就是如果PC未连接到网络,那么它将崩溃

System.Net.Sockets.SocketException: No such host is known.

如果已建立连接,然后PC与网络断开连接,则连接将保持不变。只有在没有网络连接的情况下,它才会失败。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

我所要做的就是将localhost更改为127.0.0.1,这是本地计算机的地址,永远不会更改,因此可以安全使用。使用localhost意味着UDP库必须查找与localhost别名一起使用的IP,但这并不是必需的,因为我已经知道了。我也许可以通过其他方式找到IP并在两个应用程序上运行该查询。