摘要:异步非阻塞套接字避免了死循环的接收问题,但是软件用起来体验还是很差。究其原因,软件在指令的发送、接收上,采取了一种不合理的方式:在指令的发送后,立刻调用接收函数,等待回令。 若是采用同步阻塞套接字,那么如果连接出现问题没有回令,那么软件进程会始终等待锁死,这样显然是不合理。于是采用同步非阻塞的...
阅读全文
摘要:继续话题——软件中的异步非阻塞通讯方式。 由于软件基于MFC开发,所以实现异步通讯时使用了CAsyncSocket类。 首先要了解CAsyncSocket异步机制,引用自http://blog.csdn.net/tianhai110/article/details/2115270。 ...
阅读全文
摘要:在维护代码的过程中,发现软件运行的CPU占用率居高不下,在4核的电脑上占用了25%的CPU。查阅资料的得知,这是可能是由于软件中出现了死循环。经过对软件的一些测试,最终确定了死循环出现的位置——通讯的接受端。由于在通讯中,软件需要一直监听网络端口,接受可能到来的消息,所以采用了最简单的一种接收方式:...
阅读全文