c#用完成端口實(shí)現(xiàn)的socket服務(wù)端是參考微軟SocketAsyncEventArgs的例子實(shí)現(xiàn)的,具體看https://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs.aspx 。并發(fā)量可以,但是有一個(gè)問(wèn)題 有某幾個(gè)客戶端(客戶端不是我們寫(xiě)的),頻繁的連接我們的服務(wù)端,1分鐘內(nèi)有兩千多的連接,而且不釋放,導(dǎo)致連接很快占滿,而且這些連接都只是發(fā)送一次數(shù)據(jù)就沒(méi)有再發(fā)送了,也就是客戶端的行為是 有數(shù)據(jù)-》另起socket-》發(fā)送-》不關(guān)閉,下次有數(shù)再另起socket,所以我就想在socket服務(wù)端另外起一個(gè)線程來(lái)關(guān)閉掉這些超時(shí)沒(méi)發(fā)數(shù)據(jù)的socket連接,但發(fā)現(xiàn)還是只能稍微緩解一下,連接池又很快占滿了(估計(jì)是socket清理的速度還沒(méi)有socket接收的速度快。然后把socket清理線程優(yōu)先級(jí)調(diào)為最高還是不行) 請(qǐng)問(wèn)有高人有解決方案嗎
- 1 回答
- 0 關(guān)注
- 567 瀏覽
添加回答
舉報(bào)
0/150
提交
取消