当前位置: 首页 > news >正文

专业营销网站建设广告公司创意取名

专业营销网站建设,广告公司创意取名,站长网站查询,jquery 购物网站文章目录 一、带外数据基本知识二、带外数据的读写三、检测带外数据是否到达3.1、select上的异常事件3.2、SIGURG信号 四、带外标记 一、带外数据基本知识 带外数据(Out Of Band,OOB),用于迅速通告对方本端发生的重要事件&#xf…

文章目录

  • 一、带外数据基本知识
  • 二、带外数据的读写
  • 三、检测带外数据是否到达
    • 3.1、select上的异常事件
    • 3.2、SIGURG信号
  • 四、带外标记


一、带外数据基本知识

  带外数据(Out Of Band,OOB),用于迅速通告对方本端发生的重要事件,所以它比一般数据具有更高的优先级,其传输既可以使用一条独立的传输层连接,也可以映射到传输普通数据的连接中。在实际的应用中,带外数据的使用比较少见,已知的仅有telnet、ftp等远程非活跃程序。
  虽然TCP和UDP中都没有真正的带外数据,但是TCP利用其头部中的紧急指针标志和紧急指针字段来传输紧急数据,给应用程序提供了一种传输紧急数据的方式,这种传输紧急数据的方式与带外数据类似,所以TCP紧急数据也就可以被称为带外数据。
  带外缓存,这个缓存只有1B,用来接收带外数据,根据紧急指针所指的位置确定带外数据的位置。如果上层应用程序没有及时将带外数据从带外缓存中读出,则后续数据将会覆盖它。

二、带外数据的读写

  TCP连接使用MSG_OOB参数在函数send以及recv中实现对带外数据的读写,由于带外缓存只有1B,所以在传输字符串的时候只有最后一个字节会被保存在带外缓存中进行传输。比如在以下程序的接收中,如果客户端依次传输“123”,“abc”,“123”这三次消息:

memset(buffer, '\0'. BUF_SIZE);
ret = recv(connfd, buffer, BUF_SIZE - 1, 0);
printf("got %d bytes of normal data '%s'\n", ret, buffer);
memset(buffer, '\0'. BUF_SIZE);
ret = recv(connfd, buffer, BUF_SIZE - 1, MSG_OOB);
printf("got %d bytes of oob data '%s'\n", ret, buffer);
memset(buffer, '\0'. BUF_SIZE);
ret = recv(connfd, buffer, BUF_SIZE - 1, 0);
printf("got %d bytes of normal data '%s'\n", ret, buffer);

  其结果为

got 5 bytes of normal data '123ab'
got 1 bytes of oob data 'c'
got 3 bytes of normal data '123'

  由此可见,使用MSG_OOB参数对带外数据进行传输,会迫使TCP连接切断数据流,以带外数据为分割点,正常数据’123ab‘和’123‘是不能一起被读出的。
(具体样例在《linux高性能服务器编程》P84-P85》

三、检测带外数据是否到达

3.1、select上的异常事件

  socket上面接收到正常数据和带外数据都将会使select返回,如果接收到正常数据socket将会处于可读状态,如果接受到带外数据,socket将会处于异常状态,通过判断socket的状态即可判断带外数据是否到达。

3.2、SIGURG信号

四、带外标记

  这里我们主要使用sockatmark函数来判断当前的socket是否处于带外标记,即下一个被读取到的数据是否是带外数据。

#include <sys/socket.h>
int sockatmark(int sockfd);

  如果下一个数据是带外数据的话,sockatmark返回1,不是的话返回0.

http://www.yayakq.cn/news/402934/

相关文章:

  • 广州网站关键词优化推广牡丹江做网站公司
  • 网站空间不足深圳中国有名的设计公司
  • 网站宽度设计上海有哪些大公司总部
  • 自学网站开发流程华为开发者模式怎么关闭
  • 中国电力建设集团有限公司网站陕西正天建设有限公司网站
  • 孟村网站建设公司北京城乡建设部网站
  • 微信网站开发价格网站广告怎么放
  • 网站导航栏怎么做简单wordpress 设置缩略图
  • 钢材公司网站建设深圳燃气公司有几家
  • 做网站的工具 论坛wordpress简书
  • 网站下载免费企业员工管理系统
  • 怎么给网站有一字做标记百度广告联盟点击一次多少钱
  • 河北省城乡和建设厅网站首页秦皇岛制作网站
  • 重庆营销型网站开发南京网站优化方案
  • 低价网站建设费用预算可以做免费广告的网站
  • c mvc 网站开发网页设计模板代码免费
  • 专门做app网站织梦高端大气网站模板
  • ai特效字体网站网页设计网站设计哪个好
  • 北京建设集团网站云南省建设培训中心网站
  • wordpress新建文章页面福田网站建设公司乐云seo
  • 大型做网站的公司公司注册需要准备哪些资料
  • 天津做网站的公司武冈市住房和城乡建设局网站
  • 做网站多钱门户网站建设专业
  • 苏州规划建设局网站外包网站该怎么做帐
  • 肥乡网站建设健身网站开发过程中遇到的麻烦
  • 网站开发合同存在的缺陷网站布局结构主要分为
  • 网站评估怎么做做只在自己电脑上的网站
  • 海外直购网站建设方案书范文延安怎么做网络推广
  • 网站开发技术架构郑州一建集团公司官网
  • wordpress the title适合seo优化的网站