FIONREAD 判断 socket有多少数据可读[通俗易懂]

FIONREAD 判断 socket有多少数据可读[通俗易懂]Ioctl(sockfd,FIONREAD,&npend); /*checkFIONREADsupport*/检查sockfd表示的文件描述符中有多少数据可以读取

大家好,又见面了,我是你们的朋友全栈君。

Ioctl(sockfd, FIONREAD, &npend);	/* check FIONREAD support */

检查 sockfd 表示的文件描述符中有多少数据可以读取

example

#include <stdio.h>
#include <unistd.h>
#include <poll.h>
#include <sys/ioctl.h>

int main()
{
    struct pollfd poll_fd;
    poll_fd.fd=0;
    poll_fd.events=POLLIN;
 
    for(;;)
    {
        // 返回值 ret ; ret < 0 表示错误 ; ret == 0 表示超时 ; ret > 0 表示
        int ret=poll(&poll_fd,1,2000);
        if(ret<0)
        {
            perror("poll");
            continue;
        }
        if(ret==0)
        {
            printf("poll timeout!\n");
            continue;
        }
        if(poll_fd.revents==POLLIN)
        {
            char buf[1024];
            int length;
            int res = ioctl(poll_fd.fd,FIONREAD,&length);
            printf("length : [%d]\n",length);
            read(0,buf,sizeof(buf)-1);
            res = ioctl(poll_fd.fd,FIONREAD,&length);
            printf("length : [%d]\n",length);
            printf("sdin:%s",buf);
        }
    }
 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163632.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 信息检索导论(译):第一章 布尔检索(1)

    信息检索导论(译):第一章 布尔检索(1)

    2021年8月6日
    70
  • 在 ASP.NET MVC 中充分利用 WebGrid

    在 ASP.NET MVC 中充分利用 WebGridStuartLeeks下载代码示例今年早些时候,Microsoft发布了ASP.NETMVC版本3(asp.net/mvc)以及一款名为WebMatrix的新产品(asp.net/webmatrix)。 该WebMatrix版本中提供了几个工作效率帮助组件,可以简化诸如图表和表格数据呈现等任务。 其中一个帮助组件是WebGrid,

    2022年10月5日
    0
  • Python学习路线(2022修正版)

    Python学习路线(2022修正版)经历长达近一个月的资源筛选过程终于结束,总共1.5T的资源经过:去重、筛选、整理、归档之后一份粗略的Python学习曲线资源已经成型,虽然中间经历了很多坎坷,不过最终还是完成,猪哥也是第一时间与大家分享出来。资料主要分为两部分:一、各个学习网站论坛等,二、百度云资料。网站论坛资源更新快,可以与大家互动;而百度云资源主要为视频,方便大家下载和在线观看,两种资源结合使用,学习和查找知识更方便!一、…

    2022年6月14日
    68
  • Scrapy爬虫框架,入门案例(非常详细)「建议收藏」

    Scrapy爬虫框架,入门案例(非常详细)「建议收藏」Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试.其最初是为了页面抓取(更确切来说,网络抓取)所设计的,后台也应用在获取API所返回的数据(例如AmazonAssociatesWebServices)或者通用的网络爬虫.Scrapy吸引人的地…

    2022年6月26日
    26
  • pycharm 3.2激活码 2022【在线注册码/序列号/破解码】

    pycharm 3.2激活码 2022【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    63
  • C#控件splitContainer用法

    C#控件splitContainer用法在这个例子中,最上方是一个menustrip控件,其下市toolstrip控件,添加为快捷按钮。中间区域是一个splitcontainer,分为panel1和panel2.(1)IsMdiContainer–>true(2)splitContainer的具体用法:a)他不能直接用鼠标点击选中,只能右击-》选中splitContainerb)此时我们的窗体不是最大化,如果最大化

    2022年7月18日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号