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

2021-02-23 11:17发布

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

2条回答
Prannt
1楼-- · 2021-02-23 12:05

找个工具监听一下

云宏
2楼-- · 2021-02-23 12:07

用的是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("发送函数线程有问题");
        }
    }