Heim >Backend-Entwicklung >PHP-Tutorial >PHP网络函数fsockopen如何实现Socket链接_PHP教程

PHP网络函数fsockopen如何实现Socket链接_PHP教程

WBOY
WBOYOriginal
2016-07-15 13:30:33885Durchsuche

语法: int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

返回值: 整数

函数种类: 网络系统内容说明: 目前PHP网络函数fsockopen提供二个 Socket 资料流界面,分别为 Internet 用的 AF_INET 及 Unix 用的 AF_UNIX。当在 Internet 情形下使用时,参数 hostname 及 port 分别代表网址及埠号。在 UNIX 情形可做 IPC,hostname 参数表示到 socket 的路径,port 配置为 0。可省略的 timeout 选项表示多久没有连上就中断。在使用本函数之后会返回文件指针,供文件函数使用,包括 fgets()、fgetss()、fputs()、fclose() 与 feof()。参数 errno 及 errstr 也是可省略的,主要当做错误处理使用。使用本函数,会使用搁置模式 (blocking mode) 处理,可用set_socket_blocking() 转换成无搁置模式。

PHP网络函数fsockopen的使用范例,本例用来模拟成 HTTP 连接。

<ol class="dp-xml">
<li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li>
<li>
<span>$</span><span class="attribute">fp</span><span> = </span><span class="attribute-value">fsockopen</span><span>("php.wilson.gs", 80, &$errno, &$errstr, 10);  </span>
</li>
<li class="alt"><span>if(!$fp) {  </span></li>
<li>
<span>echo "$errstr ($errno)</span><span class="tag"><span class="tag-name">br</span><span class="tag">></span><span>n";  </span></span>
</li>
<li class="alt"><span>} else {  </span></li>
<li><span>fputs($fp,"GET / HTTP/1.0nHost: php.wilson.gsnn");  </span></li>
<li class="alt"><span>while(!feof($fp)) {  </span></li>
<li><span>echo fgets($fp,128);  </span></li>
<li class="alt"><span>}  </span></li>
<li><span>fclose($fp);  </span></li>
<li class="alt"><span>}  </span></li>
<li>
<span></span><span class="tag">?></span><span>  </span>
</li>
</ol>

通过上面这段PHP网络函数fsockopen的使用示例,读者朋友们是不是已经能够基本掌握了这个函数的用法了呢?


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446295.htmlTechArticle语法: int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]); 返回值: 整数 函数种类: 网络系统内容说明: 目前PHP网络函数...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn