我做了一个服务器程序,由于我的程序要时时接收数据因此显的很慢,程序界面有时呈现不反应状态。大家有没有好的具体的建议,我如何才能把这个程序编好呢?(急)
我用的是CASYSOCKET 类,大致的方法如下:每获得一个连接我就生成一个SOCKET 对象,把他加入一个队列当中,对于接收数据我则用::OnReceive函数接收数据。
请大家多发表意见,帮我把这个任务顺利完成,多谢。
我用的是CASYSOCKET 类,大致的方法如下:每获得一个连接我就生成一个SOCKET 对象,把他加入一个队列当中,对于接收数据我则用::OnReceive函数接收数据。
请大家多发表意见,帮我把这个任务顺利完成,多谢。
把数据收发等I/O操作和协议解析分开,一般协议解析比较慢,业务处理更慢;
利用多个线程处理数据,数据接收线程组织数据,然后分别给各个处理线程喂食;注意避免资源竞争。
“线程不能太多”做好能根据CPU数和处理能力分配适当数量的线程。
网络数据的接受注意接受分包的重组,注意数据收发超时,具体的参考各个OS的socket的实现资料,选择比较好实现的I/O操作方式。
没有经过组织比较混乱,希望对楼主有用。
没去研究Linux的东西,也没听说epoll比iocp强,不知道是否真实?
让后面的高手来说说看。