Socket端口号上限测试问题

Win10系统自行将程序暂停,并产生小绿叶后将程序强制关闭.

Socket模拟高并发

今天在测试Socket服务端高并发处理性能时,我做了一个客户端模拟出数十万个客户端在随机情况下同时连接断开,并收发消息。
在程序运行时突然发现当客户端连接数目达到到70000左右时,Win10系统突然将程序暂停.
Socket端口号上限测试问题_第1张图片
如图所示,再经过一段时间后任务管理器进程后方出现小绿叶的图标.
Socket端口号上限测试问题_第2张图片
之后程序被强制结束.
开始怀疑是否与Win10系统开启的节能模式有关,于是切换到了高性能模式,发现情况还是相同。
后来在看Socket网络编程一些资料时
https://blog.csdn.net/qq_35393693/article/details/80280910
借鉴此篇,突然发现在做客户端模拟时忽略了端口数量的情况,一台电脑最多支持65536个端口,客户端在连接数量超过端口上限时将会持续不断的进行连接,而我却模拟了数十万个客户端,这些并发处理后超过端口上限的部分服务端将无法重新再分配端口,导致客户端持续不断进行连接,造成程序负载。
Win10在检测到内存被无意义占用时,将异常程序暂停,并关闭。
将客户端的异常处理做好,检测到队列满了以后停止连接即可。

你可能感兴趣的:(编程日常记录,C#)