一本书上这样说的
对已建立连接的流套接字上的应用来说,如果需要发送的数据比流上的普通数据重要
得多,便可将这些重要数据标记成“带外数据”(Out-of-band, OOB )。位于连接另一端的
应用可通过一个独立的逻辑信道(从概念上讲,该逻辑信道与数据流无关)来接收和处理O O B 数据。
在T C P 中,O O B 数据由一个紧急1 位标记(叫作U R G )和T C P 分段头中的一个1 6 位的指针组成。这里的标记和指针把指定的下行流字节当作紧急数据。实现紧急数据的两种特殊方法目前只能在T C P.RFC 793 中见到,该索引对T C P 进行了描述,并引入了“紧急数据”这一概念,表明T C P 头中的紧急指针是紧急数据字节之后那个字节的绝对偏移。但是在RFC1122中,却将紧急偏移描述成指向紧急字节本身。
Wi n s o c k 规格中,与协议无关的O O B 数据和T C P 的O O B 数据实施(紧急数据)均采用了O O B 这一术语。要查看待发数据中是否包含紧急数据,必须通过S I O C AT M A R K 选项调用i o c t l s o c k e t 函数。第9 章将介绍S I O C AT M A R K 的用法。
Wi n s o c k 提供了获得紧急数据的几个方法。一是紧急数据一旦在线插入,它就会出现在普通数据流中;二是可以关闭在线插入,这样,不连续调用接收函数就会只返回紧急数据。