欢迎来到天天文库
浏览记录
ID:30505074
大小:16.16 KB
页数:4页
时间:2018-12-30
《php中socket连接及读写数据超时问题分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解PHP中Socket连接及读写数据超时问题分析 本文实例讲述了PHP中Socket连接及读写数据超时问题。分享给大家供大家参考,具体如下: 虽然PHP中对fsockopen()方法有连接socket的超时参数,但是没有类似C中的连接成功后对数据的读写超时参数设置。没关系,PHP中对stream提供了一系列的方法以防止超时 stream_set_blocking($fp,fals
2、e) 设置数据流为阻塞模式,以防止数据没读完就退出 如果模式为false,给定的socket描述符将切换到非块模式,如果为true,则切换到块模式.这个效果类似于fgets()从socket读的情况.在非块模式fgets()将会立即返回,而在块模式将等待数据满足要求. stream_set_timeout($fp,10) 设置超时,应该在成功建立连接之后立即加上此句,后面的参数单位为秒 stream_get_meta_data($fp) 从封装协议文件指针中取得报头/元数据,返回的是一个数组,其中格式为:
3、Array (对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 [stream_type]=>tcp_socket [mode]=>r+ [unread_bytes]=>0 [seekable]=> [timed_out]=> [blocked]=>1 [eof]=> )
4、其中索引timed_out为超时信息,超时则为true,未超时则为false,我们可以籍由此来判断socket是否超时,需要注意的是此句应该加在每次需要等待的语句之后,比如fwrite(),fread(),并且每读一次,都要判断一次是否超时,而对于一个连接只需一次超时设置stream_set_timeout($fp,10)就可以了 代码: $fp=@fsockopen($ip,$port,$errNo,$errstr,30); if(!$fp) { returnfalse; } else对党的认识也有了进
5、一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 { stream_set_timeout($fp,3); //发送数据 fwrite($fp,$packet); $status=stream_get_meta_data($fp); //发送数据超时 if($status['timed_out'])
6、 { echo"Writetimeout"; fclose($fp); returnfalse; } //读取数据 $buf=fread($fp,16); $status=stream_get_meta_data($fp); //读取数据超时 if($status['timed_out']) { echo"Readtimeout"; fclose($fp); returnfalse; }对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光
7、荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 } 希望本文所述对大家PHP程序设计有所帮助。对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表
此文档下载收益归作者所有