问个select I/O模型的问题,谢谢 使用select函数判断一个套接字是否可读时,还是要使用轮询的方式,无限死循环来判断当前套接字上是否有数据可读,我觉得这和最原始的recv阻塞操作相比没多大的效率可言。不知道使用select函数和使用recv直接读相比,优势在哪里呢?我刚学SOCKET编程,肯能问的问题比较菜,麻烦大家帮忙讲解一下~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select可以设置超时值啊,优势就是可以管理多个套接字 可以管理多个套接字我理解,可是如果我想第一时间就知道一个套接字可读了,即使可以设置超时值,不还是要无限循环去查询状态吗,cpu不一样还是一直给这个线程分配。 SELECT可以改变socket的默认设置 怎么会无限的去查询状态?select是系统底层实现的没有数据到来select是将线程挂起的有数据来系统会通过信号通知select 使用Recv的话,那来个客户连接,就得开个线程但使用Select可以只开一个接收线程 select可以用来管理多个套接字 恩,我一直以为select是非阻塞的,原来是阻塞的,我明白了,谢谢~ 这样看来,您在1楼说的2点确实是select模型很好的2个优势。 明白就好,select可以在一个线程里管理多个套接字小的客户端系统完全可以用简单易用的IO模型来实现默认的数组不是很大好像是64,你可以改大一些,我试改过 设置为8000多也跑得很好,select的特点就是简单 该尝试改大点。这个简单。IOCP 那东东复杂。。恼火! vc6.0中unsigned short类型和int型之间的转换关系是怎样的? 求助扩展DLL里的消息循环 如何在我的VC程序中嵌入另一个EXE程序,成为一体的哪种,不被别人拷走? 再散一帖,人人有份 MFC怎样获得一个控件在其容器中的位置 用COleDropTarget实现拖动无法响应OnDrop的问题? Windows NT的Win32 SDK随盘附带的程序---pstat.exe 高分求解一个纠缠了我一个星期的问题,关于ListCtrl中自定义一列字体. 研究一游戏原码,用vc++写的,被弄混了头 有谁知道怎样使客户端的ActiveX不出安全提示 散分.... 求看雪论坛邀请码
可以管理多个套接字我理解,可是如果我想第一时间就知道一个套接字可读了,即使可以设置超时值,不还是要无限循环去查询状态吗,cpu不一样还是一直给这个线程分配。
select是系统底层实现的
没有数据到来select是将线程挂起的
有数据来系统会通过信号通知select
但使用Select可以只开一个接收线程
恩,我一直以为select是非阻塞的,原来是阻塞的,我明白了,谢谢~
这样看来,您在1楼说的2点确实是select模型很好的2个优势。
小的客户端系统完全可以用简单易用的IO模型来实现
默认的数组不是很大好像是64,你可以改大一些,我
试改过 设置为8000多也跑得很好,select的特点就是简单
该尝试改大点。这个简单。IOCP 那东东复杂。。恼火!