Code Bye

C#版完成端口,包括服务器、客户端、上传协议等介绍

解决方案

20

谢谢分享,lz谦虚了。

5

现在我们的客户当中还有60%使用xp系统。这个是真想用啊。

5

小的们,赶紧来膜拜高手呀!

5

本人有一个小疑问,题主在ProcessCommand的时候是放在IOCP的工作线程中的,当ProcessCommand的任务量比较大或存在阻塞或第三方IO调用等待,会不会导致IOCP工作线程不够用,最终导致网络堆栈的缓冲区爆棚?
举个比较极端的例子,有若干客户端向服务端上传日志,服务端需要对此日志进行实时计算,但由于客户端的并发量非常大,导致上传日志的速度非常快,而对日志进行计算是需要花费时间的,服务端来不及消费客户端上传的日志,在这种情况下会不会直接导致IOCP的工作线程来不及处理完成接收事件?
在这种情况下,最糟糕的情况能否会导致网络堆栈爆棚,从而使得TCP协议控制客户端数据发送速率,最终使得整个系统吞吐量严重下降?

5

原来一直忽视了 SocketAsyncEventArgs 对象,感谢题主分享.
但有个问题,使用了这个异步读写和线程池等就是完成端口了吗?莫非不需要用到CreateIoCompletionPort这个API吗?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#版完成端口,包括服务器、客户端、上传协议等介绍