printf对iocp线程的影响,SOCKET大牛进来看看,解决就给分,绝不赖账。
我做一个IOCP服务器,同一时刻用来接受大概100台客户端各自上传几百兆的大文件,IOCP服务器3类线程,一个线程用一个IOCP来接受客户端的连接,一类线程用一个IOCP接受客户端的SNED和RECV并用WRITEFILE异步的把文件写到各自的文件中,一类线程用一个IOCP来处理WRITEFILE的结果。
我在测试的时候,在接受客户端的SNED和RECV地线程中用printf打印了服务器端接受到得客户文件信息。测试代码已经很完美了,然后我就把PRINTF去掉了。去掉后发现IOCP服务器运行时,有的客户端连接不上,有的客户端连接上了但服务器接收不到客户端的数据,有的接收客户端数据到一部分时就不在接收了。而且这时候QQ都回掉线,好像IOCP服务器的网络资源都被占满了一样。
分析去掉PRINTF就是IOCP服务器少了一个时延,所导致的,但时延对IOCP服务器的那里造成了影响,改如何改进就想不明白了。求高手指点,解决马上给分。