本文实例讲述了php中fsockopen用法。分享给大家供大家参考。" n8 r# c5 R$ Q0 J' u( O
具体实现方法如下:5 ^& e# w, B) G P8 w" @
复制代码 代码如下:$fp=fsockopen(127.0.0.1,80); //打开数据流4 e( w! @6 j6 y) b& B
if(!$fp) //如果打开出错! |" L% [9 E+ R0 U
{ l, g/ u* E4 k! V/ R
echo unable to openn; //输出内容; j* G) g* M: M4 I8 J
}
* c* a5 f( p9 u! Zelse //如果成功打开8 Y: h% p$ ^5 A4 m% S
{
. P4 f" v% x+ _$ e& Q5 N- \fwrite($fp,get / http/1.0rnrn); //向数据流写入内容
3 V- y4 Q d4 C1 r" Q# f$ `3 Istream_set_timeout($fp,2); //进行超时设置* |- O& `$ E% m4 b" Z* r
$res=fread($fp,2000); //读取内容/ h, o: Z7 G. }, W# u, T
$info=stream_get_meta_data($fp); //获取数据流报头) A8 s, l: `/ h
fclose($fp); //关闭数据流+ H5 L9 }; n5 m' u; D; f( s7 ^
if($info['timed_out']) //如果超时; a0 y1 B' J+ v( e {8 y; }
{8 H: P7 Z, [" M) Q+ q% v( }2 x7 v
echo 'connection timed out!'; //输出内容
9 l& h: L+ n1 T ]8 i7 l v: P}
" v, v P: J* Lelse
) j9 |% ?5 t. k! W ~* X W4 _{
- v( o4 y9 F% u0 w; u# \( }- _9 l2 Gecho $res; //输出读取内容# a- A3 F8 W3 q& j2 k6 [4 d, Y
}) h& n) S- h: i7 _( x8 j2 R
}
$ \# z2 i4 t1 W% \, k X//实例二
! a* e t# f1 Y: l, w1 j1 N//创建服务端
- h& @0 x2 d2 d E7 C8 g$socket=stream_socket_server(tcp://0.0.0.0:8000,$errno,$errstr);
. M2 [* V% R* n8 r4 D' L) q- Z1 S//如果创建失败
8 W* ?4 K/ F" Y( Xif(!$socket); n6 Z& [$ @/ g$ Y2 t8 u$ H1 Y. x" G
{4 ?( P0 C6 `" ^3 L
echo $errstr ($errno)<br />n;9 N! T. J, [3 I9 ~
}- M- k% n; x# @" Q
//如果创建成功, B8 o- [; ~8 y! ]- V" J# v
else, {8 s0 Y" @. M9 y
{- g! \; q3 K5 [+ Z0 T O" R" j
//接受连接& R8 ~) H a5 Q6 o$ j9 o h* G
while($conn=stream_socket_accept($socket))7 A- ^5 E0 ?0 \2 w I4 L- A) |
{' c. D! c) N: {6 f; u. |
//写入数据
. q+ Z- g: O) Y0 _0 f: {, f6 cfwrite($conn,'the local time is '.date('n/j/y g:i a').n);8 L) C9 I, ]& s7 h
//关闭连接/ y7 s) u* H( r4 e9 l
fclose($conn);
2 x/ o+ e" L' l0 ^, [+ |: @}. Q9 F) v6 `( R1 ~# L
//关闭socket1 ~4 H! x( ~7 ?; y" l( L* ]- V
fclose($socket);
4 o; S" u( y0 P8 `5 E X, F( t}* b) T. K) _' S1 p T# A5 U* f. v* H
//
9 I v3 S* ], B$ n8 F, x$file=test.txt; //定义文件0 |' W8 |* l$ K: Z* z6 b
$fp=fopen($file,w); //打开数据流
2 @+ P Q$ E L+ Bif($fp) //如果成功打开
) s3 o& Z* |0 O6 z7 {# d! z$ M2 ?{( ?; Z. w& b$ y# O3 }# A
stream_set_write_buffer($fp,0); //设置缓冲区0 S' N2 G( M; R0 Y/ _' V _
fwrite($fp,$output); //写入内容- m2 o* L6 [" n& x% o. r
fclose($fp); //关闭数据流0 r& y1 B( Y. @; j1 V* h
} Z. c6 G3 G% `
希望本文所述对大家的php程序设计有所帮助。
8 X% T' h0 T" v4 H+ h! v# t, b" l- I) @" e% @% K* a M1 P( w
更多网页制作信息请查看: 网页制作 |