Linux网络编程 客户端与服务器端异步通信
#include <sys/select.h>
#include <sys/time.h>
#include
<sys/types.h>
#include <unistd.h>
int select(int
nfds,fd_set *readfds,fd_set *writefds, fd_set *except fds,struct timeval
*timeout)
void FD_SET(int fd,fd_set *fdset)
void FD_CLR(int fd,fd_set
*fdset)
void FD_ZERO(fd_set *fdset)
int FD_ISSET(int fd,fd_set
*fdset)
继续前面的
Linux网络编程-客户端与服务器端通信(Echo)
,接着讲关于客户端与服务器端的异步通讯
一般的来说当我们在向文件读写时,进程有可能在读写出阻塞,直到一定的条件满足.
比如我们从一个套接字读数据时,
可能缓冲区里面没有数据可读 (通信的对方还没有
发送数据过来),这个时候我们的读调用就会等待(阻塞)直到有数据可读.
如果我们不 希望阻塞,我们的一个选择是用select系统调用.
只要我们设置好select的各个参数,
那么当文件可以读写的时候select回"通知"我们 说可以读写了.
readfds所有要读的文件文件描述符的集合
writefds所有要的写文件文件描述符的集合
exceptfds其他的服要向我们通知的文件描述符
timeout超时设置.
nfds所有我们监控的文件描述符中最大的那一个加1
在我们调用select时进程会一直阻塞直到以下的一种情况发生.
1)有文件可以读.
2)有文件可以写.
3)超时所设置的时间到.
为了设置文件描述符我们要使用几个宏.
FD_SET将fd加入到fdset
FD_CLR将fd从fdset里面清除
FD_ZERO从fdset中清除所有的文件描述符
FD_ISSET判断fd是否在fdset集合中
使用select的一个例子
#
include
<
stdio.
h>
#
include
<
sys/
time
.
h>
#
include
<
sys/
types.
h>
#
include
<
unistd.
h>
int
main(
void
)
{
 
相关文档:
linux压缩和解压缩命令大全
.tar
解包:tar zxvf FileName.tar
打包:tar czvf FileName.tar DirName
---------------------------------------------
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip File ......
按以下步骤来,先写这么多来提醒下自己:
1.熟悉linux的基本环境,熟悉linux的基本命令.
2.熟悉linux的交叉编译环境的的配置.
3.复习基本的C语言知识.
&nbs ......
linux串口编程(要点总结) 收藏
串口编程
查询硬件的方式:查询方式、中断方式、DMA方式。串口很多是使用中断方式,这种方式一般来讲对CPU比较有效。
UART的操作主要包括以下几个部分:
数据发送;数据接受;产生中断;产生波特率;Loopback模式;红外模式;自动流控模式;
&n ......
VirtualBox官方网站:http://www.virtualbox.org/
以下为ubuntu 为平台的安装、配置、使用,其实在各个发行版中的使用都差不多,只是在下载的时候需要下载相对应主系统平台的安装包即可。
环境需求:
VirtualBox需要ker ......