UDP 接收数据重复问题?

xga359 2018-08-13 05:55:01
//UDP异步接受数据
public void AsyncReceiveData()
{
try
{
newsock.BeginReceiveFrom(receiveData, 0, receiveData.Length, SocketFlags.None,ref Remote, new AsyncCallback(ReceiveCallback), null);
}
catch (SocketException ex)
{
throw ex;
}
}
//接收数据的回调函数
public void ReceiveCallback(IAsyncResult param)
{
if (param.IsCompleted)
{
IPEndPoint client = new IPEndPoint(IPAddress.Any, 0);
//实例化客户端 终点
EndPoint epSender = (EndPoint)client;
try
{
int recv = newsock.EndReceiveFrom(param,ref epSender);
string recvData = Encoding.UTF8.GetString(receiveData, 0, recv);
receiveData = new byte[1024 * 1024];
AsyncReceiveData();
//数据处理,记录数据接收时间
。。。。。。
}
catch (Exception ex)
{

}

}
}


另一台电脑1秒发一次数据。 但是在日志里发现 偶尔会出现在10毫秒的时间出现重复的数据。请问可能会是哪里出的问题???
...全文
854 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-08-14
  • 打赏
  • 举报
回复
既然只发送一次,那么重复接收是不合情理的,显然是你未清空缓存所致
  • 打赏
  • 举报
回复
你可以看看人家 UdpClient 的源代码,再对比自己的代码。
jhone99 2018-08-14
  • 打赏
  • 举报
回复
在代码可疑位置加输出日志看看,那个发送的没问题么?也加输出日志看看
xga359 2018-08-13
  • 打赏
  • 举报
回复
大神帮忙分析分析哈了

111,092

社区成员

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

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

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