UDP 通讯中 接收byte的时候停止了!!
void ReceiveMessage()
{
//UdpClientB = new UdpClient(portclient); //B开启的端口号
//remotePoint = new IPEndPoint(IPAddress.Any, 0);
int recv;
byte[] bytes = new byte[1024];
IPEndPoint ipt = new IPEndPoint(IPAddress.Any, 13000);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
server.Bind(ipt);
while (true)
{
try
{
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint Remote = (EndPoint)(sender);
recv = server.ReceiveFrom(bytes, ref Remote);
MessagePP com = (MessagePP)DeserializeObject(bytes);
if (com.command == 0)
{
ReceivedACK = true;
}
else
{
//收的都是图片了
MessageBox.Show("B已经收到了A发来的图片消息了");
}
}
catch
{
}
}
}
单步调试,到了红色的那行代码处,没有继续往下运行了.....求助...正在弄UDP打洞,这个为Client,监听着自己这边的一个端口,然后要得到其他Client发过来的数据
------解决方案--------------------
你的AB在同一局域网内吗?对于两个客户端处于同一局域网内的情况,因为有的路由器不支持局域网内部访问其公网地址的回环,需要用本地地址访问本地客户端。所以打洞的时候,往往要发送本地地址到中转服务器,服务器将客户端的本地地址和外网地址都发送给另一个客户端,两个客户端分别通过对方的公网地址和本地地址打洞,来解决两个客户端处于同一局域网内的问题。