C#中UdpClient无法接收数据

流苏晚晴 2016-12-17 03:32:00
用C#写了个UDP程序,但是发现接收的时候一直被阻塞,我用的是同步接收,简单的用了一个while(TRUE)循环接收数据。但是在RecvClient.Receive(ref RemoteEndPoint)这个地方就不动了?下面贴上代码
public void RecieveData()
{
IPAddress locip = IPAddress.Parse(LocalIp);
//IPEndPoint locEndPort = new IPEndPoint(locip, LocalPort);
IPEndPoint locEndPort = new IPEndPoint(locip, SendToPort);
if (RecvClient == null)
{
RecvClient = new UdpClient(locEndPort);
RecvClient.Client.ReceiveTimeout = 60000;
RecvClient.Connect(IPAddress.Parse(SendToIp), SendToPort);
}

Thread RecvThread = new Thread(ReceiveMessage);
RecvThread.Start();
}


private void ReceiveMessage()
{
IPEndPoint RemoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
//RemoteEndPoint = new IPEndPoint(IPAddress.Parse(LocalIp), SendToPort);
while (true)
{
try
{
//关闭UDPRecvClient会引发异常
byte[] receiveBytes = RecvClient.Receive(ref RemoteEndPoint);

string msg = Encoding.Unicode.GetString(receiveBytes);
string ShowMsg = RemoteEndPoint.ToString() + ":" + msg;
//消息容器添加加锁,防止容器信息出错
//lock (lockObj)
//{
// listMsg.Add(ShowMsg);
//}
if (msg == SendMsgs)
{
IsOperateSuccess = true;
}
}
catch
{
break;
}
}
}


请问是我还有哪些地方没有考虑到吗?
...全文
827 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weizhaochaobaba 2017-06-13
  • 打赏
  • 举报
回复
请教楼主,怎么解决的呀?
owen9875 2017-04-26
  • 打赏
  • 举报
回复
怎么解决的,我也碰到了....
ycbs1986 2017-01-16
  • 打赏
  • 举报
回复
怎么解决的,我也碰到了....
流苏晚晴 2016-12-22
  • 打赏
  • 举报
回复
不用了,我已经解决了
土土 2016-12-22
  • 打赏
  • 举报
回复
噢噢噢噢哦哦哦哦哦哦
流苏晚晴 2016-12-17
  • 打赏
  • 举报
回复
直接给阻塞了啊,怎么调试?
john_QQ:2335298917 2016-12-17
  • 打赏
  • 举报
回复
断点调试一下
john_QQ:2335298917 2016-12-17
  • 打赏
  • 举报
回复
加个端点调试一下,看看接收到的是什么消息

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧