用于进程间通信的UDP
本文关键字:UDP 进程间通信 用于 | 更新日期: 2023-09-27 17:58:19
我目前有两个.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,并在两个应用程序上运行该查询。