linux select函数 shutdown函数】的更多相关文章

#include<sys/select.h> #include<sys/time.h> int select(int maxfdp1,fd_set *readset,fd_set *writeset,fd_set *exceptset,const timeval *timeout); *timeout: 1,NULL,永远等待:2,等待固定时间(tv_sec,tc_usec):3,不等待(tv_sec=tc_usec=0) struct timeval{ long tv_sec;…
本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现 1. I/O复用技术 I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程.I/O复用适用于以下场合: (1) 当客户处理多个描述符(一般是交互式输入或网络套接字),必须适用I/O复用 (2) 当一个客户处理多个套接字时,这种情况很少见,但也可能出现 (3) 当一个TCP服务器既要处理监听套接字,又要处理已连接套接字,一般就要使用I/O复用 (4) 如果一个服务器既要适用TCP,…
linux select函数详解 在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态.(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间.(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待) 从 select函数返回后,内核告诉我们一下信息: •对我们的要求已经做好准备的描述符的个数 •对于三种条件哪些描述符已经做好准备…
本文转载自;http://www.bkjia.com/article/28216.html Linux下select函数的使用 Linux下select函数的使用 一.Select 函数详细介绍 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect. accept.recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发 生,如果事件没…
转自:http://www.cppblog.com/myjfm/archive/2011/10/26/159093.aspx select()函数和poll()函数均是主要用来处理多路I/O复用的情况.比如一个服务器既想等待输入终端到来,又想等待若干个套接字有客户请求到达,这时候就需要借助select或者poll函数了. (一)select()函数 原型如下: 1 int select(int fdsp1, fd_set *readfds, fd_set *writefds, fd_set *e…
linux 的时区设置函数tzset() 本文转载于: http://blog.csdn.net/epicyong333/article/details/5258152 tzset #incude <time.h > void tzset(void); 设置时间环境变量. 说明tzset()函数使用环境变量TZ的当前设置把值赋给三个全局变量:daylight,timezone和tzname.这些变量由ftime和localtime函数使用校正格林威治(UTC)时间为本地时间,通过time函数从…
一. 基础知识1.时间类型.Linux下常用的时间类型有4个:time_t,struct timeval,struct timespec,struct tm.(1)time_t是一个长整型,一般用来表示用1970年以来的秒数.(2)Struct timeval有两个成员,一个是秒,一个是微妙. struct timeval {               long tv_sec;              /* seconds */               long tv_usec;    …
1 概述 之间的学习中发现,传统的阻塞式系统调用不仅浪费进程运行时间,而且会带来狠毒问题.因此进程需要有一种预先告知内核的能力,使得内核一旦发现进程指定的一个或者多个I/O条件就绪,它就通知进程.这个能力称为I/O复用,是由select和poll函数支持的. I/O复用的典型使用场景: 当客户处理多个描述符(通常是交互输入和网路套接字)时,必须使用I/O复用 一个客户同时处理多个套接字 如果一个TCP服务器既要处理监听套接字,也要处理已连接套接字,一般就要使用I/O复用 如果一个服务器既要处理T…
select与poll函数介绍 在所有依从POSIX的平台上,select函数使我们可以执行I/O多路转接.传向select的参数告诉内核: 1)我们所关心的描述符 2)对于每个描述符我们所关心的状态(是否读一个给定的描述符?是否想写一个给定的描述符?是否关心一个描述符的异常状态?) 3)愿意等待多长时间(可以永远等待,也可以等待一个固定量时间,或完全不等待) 从select返回时,内核告诉我们: 1)已准备好的描述符的数量 2)对于读.写或异常这三个状态中的每一个,哪些描述符已准备好 使用这些…
close函数首先是将传入的socket句柄引用数减1(因为fork进程时会导致socket句柄被多个进程引用),待到引用数等于0的时候,close才会真正关闭连接. shutdown函数是立刻关闭连接(忽视句柄引用数值),关闭有三种方式 SHUT_RD 关闭调用进程的读通道,调用进程立刻不能读网络数据,读缓冲里的数据会被清空 SHUT_WR 关闭调用进程的写通道,调用进程立刻不能写网络数据,写缓冲里的数据立刻会被发送出去 SHUT_RDWR 关闭整个连接 close和shutdown函数…