socket select
来源:互联网 发布:finger软件 编辑:程序博客网 时间:2024/05/16 17:40
如果你不喜欢或者不能让socket阻塞工作,那可以如下改进:1.使用非阻塞然后自己去查询EWOULDBLOCK, 2.使用select模型,3.使用多线程。
当然,windows下有更多选择WM异步甚至完成端口。
我以前也贴过select的代码,但是还是每次看到它都想说点什么,大概是真的不常用加上我觉得很多人会对他有神秘感而想体验一下而遇到问题得原因吧。
select是一种查询,查询我所询问的socket上有没有应该处理的事件,当然,由于berkely socket内部没有区分连接socket和数据socket,所以你要自己处理事件是连接还是数据,好在这没什么难的,你自己建立的socket你一定知道它是哪个类型。
注意:查询我所询问的socet上有没有应该处理的事件。这有几个问题:
1.我所询问,那这个询问是如何投放的。
使用FD_SET可以将指定一个socket添加到特定的兴趣集fl_set里。(注意区分大小写,大写的是方法,小写的是一个结构)。
2.如何询问。
这个很简单,就是使用select方法了。
3.如何分析询问到的结果。
可以用FD_ISSET查询特定一个socket是否在有事件的fd_set集里。
4.注意,使用前一定要清理并初始化。
清理使用FD_ZERO,初始化就是添加新的socket了,对,使用FD_SET。
- socket select
- Socket Select
- Socket & Select
- Socket-Select
- Socket Select
- socket select
- socket --- select()
- socket select
- socket select
- select socket
- socket select代码
- socket select()用法
- Socket select的用法
- Socket编程之Select
- socket select()用法
- socket-select函数
- socket select()用法
- Socket select()用法
- TDC----实现静态页面的动态操作(HTML直接调用TXT文本文件)
- 一条捕获网页中所有链接的正则表达式
- 常见文件扩展名和它们的说明
- CSS里,边距(Margin),边框样式(border),空白(Padding)的相关参数
- 详细的xp修复控制台命令
- socket select
- 近期的计划
- 如何用c实现可执行文件的复制
- 计算机世界中的道德伦理
- 实用技巧:解决Ubuntu 7.10启动慢的问题
- c#的http类,用于采集
- getch()、getche()和getchar()函数
- javaScript中如何定义类
- 计算机中的原码、反码和补码