socket通信,客户端同时发起连接,服务端accept不到

小鬼当家家 2017-07-18 06:38:47
socket tcp通信,服务端开启端口监听
CommonData.ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
CommonData.ServerSocket.Bind(ipe); //绑定EndPoint对象(端口和ip地址)
CommonData.ServerSocket.Listen(500); //开始监听

如果100个左右服务端同时发起connect操作,服务端Accept接收到的客户端的连接是随机的,不能把100个客户端全部接收到

private static void Listener()
{
try
{
if (CommonData.ServerSocket == null)
{
return;
}
while (true)
{

Socket socket = CommonData.ServerSocket.Accept();//
}
catch(Exception ex)
{

}
}
...全文
384 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2017-07-18
  • 打赏
  • 举报
回复
并发量100不算很大 可能是出异常了, 建议把listen中的try...catch取掉再测试
小鬼当家家 2017-07-18
  • 打赏
  • 举报
回复
引用 1 楼 DOwnstairs 的回复:
试试IOCP ?socketAsyncEventArgs 你说的同时是指的瞬间?? 如果是的话。貌似不行,毕竟CPU需要消耗时间做运算。。。所以只能一个个的接受
就是这样的。服务端一旦开启监听,就会有100个客户端请求连接。accetp接收的客户端个数就不全
SoulRed 2017-07-18
  • 打赏
  • 举报
回复
试试IOCP ?socketAsyncEventArgs 你说的同时是指的瞬间?? 如果是的话。貌似不行,毕竟CPU需要消耗时间做运算。。。所以只能一个个的接受

111,094

社区成员

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

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

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