UNIX网络编程学习(13)--使用select的str_cli函数的实现

原创 2012年03月28日 17:04:16
//select/strcliselect01.c
#include    "unp.h"

void
str_cli(FILE *fp,int sockfd)
{
    int maxfdp1;
    fd_set rset;
    char sendline[MAXLINE],recvline[MAXLINE];

    FD_ZERO(&rset);
    for(; ;)
    {
        FD_SET(fileno(fp),&rset);
        FD_SET(sockfd,&rset);
        maxfdp1=max(fileno(fp),sockfd)+1;
        Select(maxfdp1,&rset,NULL,NULL,NULL);

        if(FD_ISSET(sockfd,&rset))
        {
            if(Readline(sockfd,recvline,MAXLINE) == 0)
                err_quit("str_cli:server terminated prematurely");
            Fputs(recvline,stdout);
        }
        if(FD_ISSET(fileno(fp),&rset))
        {
            if(Fgets(sendline,MAXLINE,fp) == NULL)
                return;
            Writen(sockfd,sendline,strlen(sendline));
        }

    }
}

UNIX中的Select函数

表头文件#i nclude#i nclude#i nclude定义函数int select(int n,fd_set * readfds,fd_set * writefds,fd_set * ...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2013年03月12日 02:19
  • 2376

UNIX网络编程--I/O复用:select函数和poll函数讲解(六)

一、select函数    select函数允许进程指示内核等待多个事件中的任一个发生,并仅在一个或者多个事件发生或经过某个指定的时间后才唤醒进程。 我们所关心的描述字不受限于套接口,任何描述字都...
  • yusiguyuan
  • yusiguyuan
  • 2013年09月20日 15:00
  • 4496

《unix网络编程》(13)select、shutdown函数

《unix网络编程》(11)tcp服务器的几种常见状况分析的“服务器进程终止”提到客户阻塞于fgets所以没办法收到服务器发的FIN,只有当客户再次输入文本并发送给服务器后才会从套接字中读取,这时才知...
  • u013074465
  • u013074465
  • 2015年04月04日 22:00
  • 1199

linux之select函数用法详解

select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。   何为文件句...
  • qq_21792169
  • qq_21792169
  • 2016年01月03日 10:23
  • 14333

Select函数实现原理分析

本文转自 http://blog.csdn.net/codejoker/article/details/5404442?locationNum=1 select 需要驱动程序的支持,驱动程序实现...
  • Programmer_acu
  • Programmer_acu
  • 2016年09月06日 10:09
  • 542

select函数使用浅析

一、函数原型及参数说明     int select(int maxfdp, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct ...
  • silent123go
  • silent123go
  • 2016年09月18日 19:32
  • 1217

《unix高级环境编程》信号——abort、system和sleep函数

abort函数   abort 函数的功能是使异常终止,此函数将 SIGABRT 信号发送给调用进程,让进程捕捉 SIGABRT 信号目的是在进程终止之前由其执行所需的清理操作。默认情况是终止调...
  • zhoudengqing
  • zhoudengqing
  • 2014年11月25日 16:28
  • 573

select函数的实现源码

代码摘自:linux-2.6.29 sys_select -> core_sys_select -> do_select int do_select(int n, fd_set_b...
  • u012007928
  • u012007928
  • 2015年01月30日 11:12
  • 447

Linux中的system函数的实现和解释

#include #include #include #include int system(const char *cmdstring) /* with appropriate signal...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2013年04月18日 19:26
  • 2629

select函数详细用法解析

1.表头文件 #include #include #include 2.函数原型 int select(int n,fd_set * readfds,fd_set * writefds,fd_s...
  • guozhiyingguo
  • guozhiyingguo
  • 2016年10月24日 15:39
  • 1814
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UNIX网络编程学习(13)--使用select的str_cli函数的实现
举报原因:
原因补充:

(最多只允许输入30个字)