UNIX网络编程——非阻塞connect
来源:互联网 发布:在未来网络上班怎么样 编辑:程序博客网 时间:2024/05/22 06:05
当在一个非阻塞的TCP套接字上调用connect时,connect将立即返回一个EINPROGRESS错误,不过已经发起的TCP三次握手继续进行。我们接着使用select检测这个连接或成功或失败的已建立条件。非阻塞的connect有三个用途:
- 我们可以把三次握手叠加在其他处理上。完成一个connect要花一个RTT时间。这段时间内也许有我们想要执行的其他处理工作执行。
- 我们可以使用这个技术同时建立多个连接。这个用途已随着Web浏览器变得流行起来。
- 既然使用select等待连接的建立,我们可以给select指定一个时间限制,使得我们能够缩短connect的超时。许多实现有着从75S到数分钟的connect超时时间。应用程序有时想要一个更短的超时时间,实现方法之一就是使用费阻塞connect。
非阻塞connect虽然听似简单,却有一些我们必须处理的细节:
- 尽管套接字时非阻塞的,如果连接到的服务器在同一个主机上,那么当我们调用connect时,连接通常立即建立。我们必须处理这种情形。
- 源自Berkeley的实现(和POSIX)有关于select和非阻塞connect的以下两个规则:(a)当连接成功建立时,描述符变为可写; (b)当连接建立遇到错误时,描述符变为既可读又可写。
- UNIX网络编程——非阻塞connect
- UNIX网络编程——非阻塞connect:时间获取客户程序
- UNIX网络编程——非阻塞connect: Web客户程序
- 《UNIX网络编程 卷1》 笔记: 非阻塞式connect—web客户程序
- UNIX网络编程--非阻塞connect的实现
- UNIX网络编程--非阻塞connect的实现
- 唯快不破:UNIX网络编程--非阻塞connect的实现
- UNIX网络编程——非阻塞accept
- UNIX网络编程笔记(12)—非阻塞IO
- 网络编程学习笔记(非阻塞connect)
- Linux网络编程 - 非阻塞connect
- 【网络编程】非阻塞connect详解
- linux网络编程-----非阻塞connect
- TCP网络编程--非阻塞accept和非阻塞connect
- TCP网络编程--非阻塞accept和非阻塞connect
- UNIX网络编程卷1 时间获取程序客户端 TCP 使用非阻塞connect
- 非阻塞connect编程
- UNIX网络编程——非阻塞式I/O(套接字)
- 浅析单页网站内容收录低端由及应对策略
- 前端JS Ajax 调用Java Axis的 web服务
- Q_PROPERTY
- 基于V4L2的视频驱动开发(2)
- 浅谈新手站长如何学习seo
- UNIX网络编程——非阻塞connect
- 静态变量
- SSO单点登录系列6:cas单点登录防止登出退出后刷新后退ticket失效报500错
- Synchronization and the Java Memory Model
- UVa 408: Uniform Generator
- Velocity语法强化5之指令符号
- NYOJ 比大小 73
- 流媒体协议RTMP Java实现
- 一周恢复被K网站的特殊案例