UNIX网络编程——带外数据小结
来源:互联网 发布:sql in 两个字段 编辑:程序博客网 时间:2024/05/01 21:04
TCP没有真正的带外数据,不过提供紧急模式和紧急指针。一旦发送端进入紧急模式,紧急指针就出现在发送到对端的分节中的TCP首部中。连接的对端收取该指针是在告知接收进程发送端已经进入紧急模式,而且该指针指向紧急数据的最后一个字节。然而所有数据的发送仍然受TCP正常的流量控制支配。
套接字API把TCP的紧急模式映射成所谓的带外数据。发送进程通过指定MSG_OOB标志调用send让发送端进入紧急模式。该调用中的最后一个字节的数据被认为是带外字节。接收端TCP收到新的紧急指针后,或者通过发送SIGURG信号,或者通过由select返回套接字有异常条件待处理的指示,让接收进程得以通知。默认情况下,接收端TCP把带外字节从普通数据流中取出存放到自己的单字节带外缓冲区,供接收进程通过指定MSG_OOB标志调用recv读取。接收进程也可以开启SO_OOBINLINE套接字选项,这种情况下,带外字节被留在普通数据流中。不管接收进程使用哪种方法读取带外字节,套接字层都在数据流中维护一个带外标记,并且不允许单个输入操作读过这个标记。接收进程通过调用sockatmark函数确定它是否已经到达该标记。
带外数据未被广泛的使用。telnet和rlogin使用它,FTP也使用它,他们使用带外数据时为了通知远端有异常情况(如客户中断)发生,而且服务器丢弃带外标记前接收的所有输入。
- UNIX网络编程——TCP带外数据小结
- UNIX网络编程——带外数据小结
- UNIX网络编程——带外数据
- 《网络编程》带外数据
- Unix网络编程—简介
- unix网络编程-第五章-小结
- unix网络编程-第六章-小结
- unix网络编程-第七章-小结
- unix网络编程-第八章-小结
- unix网络编程-第九章-小结
- unix网络编程-第十章-小结
- unix网络编程-第十一章-小结
- unix网络编程-十二,十三章-小结
- unix网络编程-十五,十六章-小结
- unix网络编程-第六章-小结
- 《unix 环境高级编程》之带外数据
- 【UNIX网络编程】 22~25 高级UDP套接字编程、高级SCTP 套接字编程、带外数据、信号驱动I/O
- UNIX网络编程笔记(6)—UDP网络编程
- 外链的建设
- java中J2EE J2SE J2ME 的区别
- IO流总结3
- OC学习之Objective-C的内存管理
- 在c++中如何控制小数位数
- UNIX网络编程——带外数据小结
- hdu40069(优先级队列)
- Solution:Unable to load perf ormance pack. Using Java I/O instead. Please ensure that wlntio.dll
- log4j 输入不同日志文件
- 如何培养兴趣
- Hdu---Easier Done Than Said---1039
- Effective Java 第4条:通过私有构造器强化不可实例化的能力
- 在ubuntu server 12.04上运行ltib
- Ural 1912 - Passing through Walls 阅读理解+BFS+高效Hash