System.Net.Sockets挂在iOS上,没有任何错误。 (统一)

我正在统一开发一款跨平台游戏,并且正在使用System.Net.Sockets进行服务器和客户端之间的通信。 但是在某些iOS设备(iPhone Xs)中,游戏有时会突然停止接收UDP数据,在2款游戏中已发生1次。 我认为服务器上没有问题,因为游戏是多人游戏,而其他玩家继续玩游戏并接收/发送数据。

这是我的连接代码:

BroadcastClient = new UdpClient(Port);
BroadcastClient.Connect(BroadcastIp);
BroadcastClient.BeginReceive(new AsyncCallback(OnUdpReceive),null);

这是接收代码:

public void OnUdpReceive(IAsyncResult ar)
{
 try
 {

     if (IsDisposed == true)
         return;

     IPEndPoint clientEndPoint = null;
     byte[] bytes = BroadcastClient.EndReceive(ar,ref clientEndPoint);

     Task.Run(() =>
     {
         string json = Encoding.UTF8.GetString(bytes);

         UserResponseData response = JsonUtility.FromJson<UserResponseData>(json);

         Ping = (int)((NetworkTimeController.NTC.CurrentTime - response.T) * 1000);


         if (response.CT - NetworkTimeController.NTC.CurrentTime > 0.0f)
                NetworkTimeController.NTC.Offsetvalue += response.CT - NetworkTimeController.NTC.CurrentTime;


         if (response.P == null)
             return;

         if (LastPacketarrivedOnReconnect == false && response.P.OID == response.LPID)
             LastPacketarrivedOnReconnect = true;

         lock (ExecuteablePackets)
         {
             lock (HistoryOfPackets)
             {

                 if (HistoryOfPackets.Any(x => x.OID == response.P.OID))
                     return;

                 HistoryOfPackets.Add(response.P);

                 UnOrderedexecutablePackets.Add(response.P);
             }
         }
     });

 }
 catch (Exception exc)
 {
     Debug.LogError(exc);
     ServerManager.SM.LogErrorToserver(exc.ToString(),string.Empty,LogType.Exception);
 }
 finally
 {
     try { BroadcastClient.BeginReceive(new AsyncCallback(OnUdpReceive),null); }
     catch (Exception) { }
 }
}

这是发送代码:

BroadcastManager.BM.BroadcastClient.Client.Send(bytes,bytes.Length,Socketflags.None);
hxleffects 回答:System.Net.Sockets挂在iOS上,没有任何错误。 (统一)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3075092.html

大家都在问