首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

UDP服务器的编撰

2013-12-10 
UDP服务器的编写我写了一个UDP服务器,一共需要监听两个端口所以我用两个线程,一个线程监听一个端口每个线

UDP服务器的编写
我写了一个UDP服务器,一共需要监听两个端口
所以我用两个线程,一个线程监听一个端口
每个线程都有一个while(1)的循环负责接收消息,所以系统中有两个while的循环
然后,测试的时候发现CPU的利用率基本上是100%,系统卡的要死
我知道是因为while的问题,如果是只有一个while,则利用率50%左右
这是因为我的系统是双核的,请问有什么办法,可以让CPU利用率少一些
UDP除了while循环接受,还有其他办法接受数据没有? UDP 服务器 利用率
[解决办法]
接收消息那你做成阻塞模式的,让其有消息时再跑循环,没有数据,就阻塞在那里试试
[解决办法]
网络通讯通常是I/O密集型,现在你用while循环却没有任何非阻塞措施,完全靠用户层的轮询,直接就把问题域转为了CPU密集型,肯定是不行的。
[解决办法]
recvfrom默认是阻塞模式, 不太会出现楼主的情况,除非楼主闲得慌给socket设置成了非阻塞模式, 或者楼主的客户端发消息非常猛服务器根本无暇喘息

热点排行