猿问

socket服务端问题

c#用完成端口实现的socket服务端

是参考微软SocketAsyncEventArgs的例子实现的,具体看https://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs.aspx 。

并发量可以,但是有一个问题

 

有某几个客户端(客户端不是我们写的),频繁的连接我们的服务端,1分钟内有两千多的连接,而且不释放,导致连接很快占满,而且这些连接都只是发送一次数据就没有再发送了,也就是客户端的行为是 有数据-》另起socket-》发送-》不关闭,下次有数再另起socket,所以我就想在socket服务端另外起一个线程来关闭掉这些超时没发数据的socket连接,但发现还是只能稍微缓解一下,连接池又很快占满了(估计是socket清理的速度还没有socket接收的速度快。然后把socket清理线程优先级调为最高还是不行)

 

请问有高人有解决方案吗


RISEBY
浏览 551回答 1
1回答
随时随地看视频慕课网APP
我要回答