用于进程间通信的UDP



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

这两个应用程序使用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));

通信流快速可靠,只有一个问题,那就是如果电脑没有连接到网络,那么它就会因而崩溃

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

如果连接已经建立,然后电脑与网络断开连接,则连接将保持。只有在没有网络连接可以启动的情况下,它才会失败。

如有任何建议,我们将不胜感激。

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

最新更新