文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>高级I/O函数

高级I/O函数

时间:2009-04-16  来源:ddvv

对于socket,最基本的输入输出函数就是,read和write。它们最基本,同样功能也是最少的。Unix中有几个函数是read/write的变种,在基本的输入输出功能上,还增加了一些非常使用的功能和特性,它们是:recv/send、readv/writev和recvmsg/sendmsg。

1、socket超时的实现

一般来说,要在对socket的I/O操作实现超时,有3种方式:

·注册SIGALRM信号的处理函数,然后调用alrm,则若对socket的I/O操作阻塞时间大于alrm注册的时间,则在alrm时间到时会阻塞会被SIGALRM打断。这样做有个缺点,就是alrm的调用会影响到同一进程的其他alrm调用。某些系统中,系统调用被信号打断后,会自动重新调用,在这种系统中可以使用setlongjmp/siglongjmp来跳出。

·使用SO_RCVTIMEO/SO_SNDTIMEO选项。注意,并不是所有的系统都支持这两个选项。

·用select代替read/write。

前面两种方式只对socket进行输入/输出有效,而最后一种除了输入/输出以外,还对connect有效(socket必须处于nonblocking模式下)。

2、recv/send

函数原型:

相关阅读 更多 +
排行榜 更多 +
平衡球球

平衡球球

休闲益智 下载
平衡球球游戏

平衡球球游戏

休闲益智 下载
土耳其方块消除游戏

土耳其方块消除游戏

休闲益智 下载