IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Linux Socket 学习笔记22-带外数据2

    Qiang发表于 2009-08-08 06:19:10
    love 0

    如果要使用这种模式,那么要设置SO_OOBINLINE套接口选项:
    srtsocket(s,SOL_SOCKET,SO_OOBINLINE,&oobinline;,sizeof(oobinline));

    既然带内数据在普通数据中间,那么怎么知道具体在哪呢,这就需要用函数ioctl(2)确定紧急指针的位置。

    ?View Code C
    1
    2
    3
    4
    5
    6
    7
    
    #includeioctl.h><span>
     
    int flag;//如果被标记则为TRUE
     
    z=ioctl(s,SIOCATMARK,&amp;flag);
     
    //成功返回0

    下面是内嵌带内数据的主要代码:

    ?View Code C
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    z=srtsocket(s,
     
    SOL_SOCKET,
     
    SO_OOBINLINE,
     
    &amp;oobinline,
     
    sizeof(oobinline));
     
    for(;;)
     
    {
     
    ioctl(s,SIOCATMARK,&amp;flag);
     
    recv(s,buf,sizeof(buf),0);
     
    }


沪ICP备19023445号-2号
友情链接