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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CheckBox多选按钮实现CompoundButton.OnCheckedChangeListener

    CheckBox多选按钮实现CompoundButton.OnCheckedChangeListeneractivity_main.xml

    2022年6月7日
    29
  • debian连接无线网络_debian开启wifi

    debian连接无线网络_debian开启wifidebian6通过无线路由器上网。配置很简单。在/etc/network/interfaces文件中添加无线网卡的配置选项:autoloifaceloinetloopback#无线网卡选项ifacewlan0inetdhcp#以下可以配置路由器的网络名称和密码,不过测试时候发现好像不起作用,所以在稍后的命令行中再输入网络名称和密码打开终端,进入超级用户模式,敲入以下命令:ifconfigwlan0upiwconfigwlan0

    2022年10月19日
    0
  • 电商中的spu是什么_个人如何做跨境电商

    电商中的spu是什么_个人如何做跨境电商1、SPU介绍SPU=StandardProductUnit(标准产品单元)SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗的讲,除去规格信息以外的,属性值、特性相同的商品就可以归类到同一个SPU里面。2、SKU介绍SKU=StockKeepingUnit(库存量单元)SKU是库存进出计量的单元,可以是以件、盒等为单位,是物理上不可分割的最小存货单位,是一款具体规格的产品。通俗的讲,SKU是指一款商品,每款都有一个SKU,便于

    2022年8月30日
    1
  • 软件,硬件版本号命名规范是什么_版本号格式

    软件,硬件版本号命名规范是什么_版本号格式软件、硬件版本号命名规范常见版本号规范示例如v1.0.0通用版本命名规范如下:主版本号.子版本号.修订版本号.日期_版本阶段如v1.2.3.20201228_rc主版本号(1)功能模块发生较大变动,如增加多个模块/整体架构改变子版本号(2)功能增加或变化修订版本号(3)Bug修复或小变动,间隔不限,修复一个严重bug即可发布一个修订版由项目经理决定日期版本号(20201228)记录修改项目的当前日期,每天对项目修改都更改由开发人员决定希腊字母版本号(rc)标注当前版本的软

    2022年9月10日
    0
  • netstat命令输出结果分析「建议收藏」

    netstat命令输出结果分析「建议收藏」netstat命令一般用来查看IP/Port占用情况,在网络程序员那里就可以用于检测数据发送/接收的端口是否正确。比如最近在做“视频实时传输”项目时就是用它发现问题的。所以有必要看懂netstat命令输出结果的含义,下面给出三个典型的结果:说明:Tserver01为一个UDP服务器测试程序,用于接收客户端的请求数据,然后回传另一组数据到客户端。UDP——传输协议为UDP协

    2022年7月23日
    6
  • 博客园整改之思考_整改思路

    博客园整改之思考_整改思路在博客园写博客写了三年半的时间了,当初为什么会选择在博客园写,我也记不清是什么原因了,或许这大概是缘分吧。今年3月份后半段的时候,博客园突然访问不了了,如今通过搜索资料,仍然发现有部分文章访问不了,

    2022年8月4日
    2

发表回复

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

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