udp服务端的效率

myminimouse myminimouse 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
int iReceive;Socket udplocalSocket;
byte[] btData = new byte[1024];

IPEndPoint ipLocalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), port1);
udplocalSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
udplocalSocket.Bind(ipLocalEndPoint);

while (true)
{
btData = new byte[1024];
IPEndPoint ipRemoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
EndPoint remoteEndPoint = (EndPoint)(ipRemoteEndPoint);

try
{
iReceive =udplocalSocket.ReceiveFrom(btData, ref remoteEndPoint);

}
catch (SocketException ex)
{
continue;
}

if(btData.Length>0)
{
byte[] temp = DllFun.TrimByte00(btData);

udpclassobject m_udpclassobject = new udpclassobject();
m_udpclassobject.remoteEndPoint = remoteEndPoint;
m_udpclassobject.temp = temp;
ThreadPool.UnsafeQueueUserWorkItem(new WaitCallback(UpdataHandler1.UpDataHandler), m_udpclassobject);
}
Thread.Sleep(1);
}

这种是不是效率很低,有2000多个客户端同时发送数据丢包特别严重,还不确定是网络还是代码问题,找时间抓包看看。
希望各位先帮忙看下代码。如果确实是这样效率不高的话,麻烦大家给个高效的办法或者代码,谢谢
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
myminimouse
C# 111,129 成员 642,538 内容