Unity和UDP MulticastGroup

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity和UDP MulticastGroup相关的知识,希望对你有一定的参考价值。

我正在尝试收听使用MultiCastGroup通过UDP发送的主机。在Unity中,客户端启动但没有收到任何消息,但是如果我使用完全相同的代码并将其放入控制台应用程序中,它就可以工作,我会看到主机的消息。

这是我得到的:

public class UDPListener : MonoBehaviour
{
   IPEndPoint ip;
   private int port = 20000;
   private IPAddress group_address = IPAddress.Parse("233.255.255.255");
   private UdpClient client;
   string data;

   private void Start()
   {
       StartClient();
   }

   void StartClient()
   {
       Debug.Log("Starting Client");

       ip = new IPEndPoint(IPAddress.Any, port);
       client = new UdpClient(ip);
       client.JoinMulticastGroup(group_address);

       client.BeginReceive(new AsyncCallback(ReceiveServerInfo), null);
   }

   void ReceiveServerInfo(IAsyncResult result)
   {
       byte[] receivedBytes = client.EndReceive(result, ref ip);
       data = Encoding.ASCII.GetString(receivedBytes);

       if (String.IsNullOrEmpty(data))
       {
          Debug.Log("No data received");
       }
       else
       {
          Debug.Log(data);
       }

       client.BeginReceive(new AsyncCallback(ReceiveServerInfo), null);
   }
 }

我也使用client.Receive得到了相同的结果(在控制台应用程序中工作,但在Unity中没有)所以我想知道是否有一些Unity设置我缺少?

答案

没关系,Windows更新已经将防火墙重新打开,这阻止了Unity:]

以上是关于Unity和UDP MulticastGroup的主要内容,如果未能解决你的问题,请参考以下文章

Unity 游戏内无法接收 UDP 数据包

unity中UDP接收数据如何还原问题?

php7.2安装pgsql和pdo_pgsql报错/usr/lib64/libldap_r-2.4.so.2: undefined symbol: ber_sockbuf_io_udp的处理...(代

Unity3D 问题总结Unity报错提示:InvalidOperationException: Collection was modified; enumeration operation ma(代

Unity3D 问题总结Unity报错提示:InvalidOperationException: Collection was modified; enumeration operation ma(代

unity_Socket_UDP广播协议的接收发送(客户端模块)