weixin_44673417
weixin_44673417
采纳率100%
2021-02-23 11:18

使用UDPsocket进行unity和WPF之间通信的问题

我将原来用于WPF间通信的代码改了一下用于unity(在WPF间实测好用)。以WPF为服务器端,unity为客户端测试时发现,服务器端能向客户端发送消息并被接收(因为数据包中有关于运行时长的数据,在unity中能看到对应数据改变了),但是客户端向服务器端发送消息,服务器端接收不到,不知道是unity的发送出了问题还是WPF端接收出了问题,该如何判断找出错误?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • weixin_42322532 开局一个bug 2月前

    找个工具监听一下

    点赞 1 评论 复制链接分享
  • weixin_44673417 weixin_44673417 2月前

    睡了一觉,起来把目标IP地址换掉就好用了。。大意了

    点赞 评论 复制链接分享
  • weixin_44673417 weixin_44673417 2月前

    用的是SocketAsyncEventArgs的异步通信,在unity中让其发送也没有报错

     public void SendTo(ref byte[] data, int dataSize, EndPoint remoteEP)
        {
            try
            {
                if (m_SendArgPool.Count > 0)
                {
                    SocketAsyncEventArgs m_SendArgs = m_SendArgPool.Pop();
                    m_SendArgs.RemoteEndPoint = remoteEP;
                    m_SendArgs.SetBuffer(data, 0, dataSize);
                    bool block = m_UdpSocket.SendToAsync(m_SendArgs);
                    Debug.Log(string.Format("UdpSocket::SendTo={0}", block));
                }
                else
                {
                    for (int i = 0; i < 8; i++)
                    {
                        SocketAsyncEventArgs ae = new SocketAsyncEventArgs();
                        ae.UserToken = this;
                        ae.Completed += new EventHandler<SocketAsyncEventArgs>(Udp_OnSendCompleted);
                        m_SendArgPool.Push(ae);
                    }
                }
            }
            catch
            {
                Debug.Log("发送函数线程有问题");
            }
        }
    
    
    点赞 评论 复制链接分享