我将原来用于WPF间通信的代码改了一下用于unity(在WPF间实测好用)。以WPF为服务器端,unity为客户端测试时发现,服务器端能向客户端发送消息并被接收(因为数据包中有关于运行时长的数据,在unity中能看到对应数据改变了),但是客户端向服务器端发送消息,服务器端接收不到,不知道是unity的发送出了问题还是WPF端接收出了问题,该如何判断找出错误?
找个工具监听一下
用的是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("发送函数线程有问题");
}
}
睡了一觉,起来把目标IP地址换掉就好用了。。大意了