本文实例讲述了php中fsockopen用法。分享给大家供大家参考。. Z* v* A& t5 P, a) }
具体实现方法如下:8 [$ S8 p' b% a6 P8 T* @+ F
复制代码 代码如下:$fp=fsockopen(127.0.0.1,80); //打开数据流
3 C. `4 p* e9 o1 {# mif(!$fp) //如果打开出错
: i5 n# R3 a N$ j{
% ^1 U) i7 Z) `5 J0 w3 p" Qecho unable to openn; //输出内容
. M6 b1 ]) Q! k' t! `}
4 s5 i- V- L# n. i' S& t, ?: p, delse //如果成功打开& Z: H; r7 g$ l, A" @% u0 T0 Z
{
1 J6 ~2 T5 G; U. j3 Hfwrite($fp,get / http/1.0rnrn); //向数据流写入内容) e4 }; k+ S: X
stream_set_timeout($fp,2); //进行超时设置) W& C/ ?0 R9 Y0 a6 U
$res=fread($fp,2000); //读取内容
& F4 A5 \9 f/ I7 H$info=stream_get_meta_data($fp); //获取数据流报头$ H0 p+ b/ K4 L) ]/ N: E# P6 x
fclose($fp); //关闭数据流
+ R$ T. p/ a: i( Z. V2 Sif($info['timed_out']) //如果超时
5 {2 Q/ e f4 [5 {7 p{' D: @) d, b; J7 k3 Z# h
echo 'connection timed out!'; //输出内容. R4 B. m Y* R7 }6 g4 a
}2 N4 j5 b0 S9 C: S7 _# w; F4 U
else5 O4 i( n' v; H ^3 e; ]! G s1 }% b
{
8 S1 @2 |1 \" s$ ~" yecho $res; //输出读取内容' i: c! b7 k. ^0 P6 b" C2 F
}
2 E) U0 V8 N8 w2 N" T}! f' u" C8 q, t2 S4 w/ y; R( b
//实例二
3 p8 V, H6 [/ _" r% u0 d1 R//创建服务端3 h1 i* O. I/ D3 n1 T
$socket=stream_socket_server(tcp://0.0.0.0:8000,$errno,$errstr);
8 w7 v8 S4 r; A3 I% g//如果创建失败- t" O+ _$ |# O$ A
if(!$socket): l( m7 n" Q0 e( P& R6 R( h
{$ J9 _3 n) r! Z, [. k4 q% W
echo $errstr ($errno)<br />n;
! Y3 b* |5 K# [8 W}
% X+ R A3 D2 [- F" i//如果创建成功5 m6 r1 l* `: m! b- B- t% w( |# H( V3 ^
else% p, p/ S- Q8 X1 I, h0 r
{
8 N, ?# v; z, g//接受连接
5 s9 l0 o4 G: w! gwhile($conn=stream_socket_accept($socket))
. x5 @+ J4 S) D6 g1 J& q{
; f! V& C% {# B0 y& p4 G# ^//写入数据
x0 d, f) z* g/ @& {# m: s8 B- q2 yfwrite($conn,'the local time is '.date('n/j/y g:i a').n);
% I( i1 u1 o/ |% q! A" g7 x) z//关闭连接/ \+ n5 B9 z9 Y8 U; B% R
fclose($conn);
" }) z c* x3 ~}% Q+ T' S- W; H0 c
//关闭socket% k1 l E7 V# c1 A3 j9 C" u* m6 o
fclose($socket);" E- ^6 x3 ~0 J: V% b
}
1 }& o3 ]2 c7 T& ?7 u//8 F: x/ d! B' Y( D/ M3 [% N% O
$file=test.txt; //定义文件
# b: Q* g$ T0 e. v0 o' x& j. _$fp=fopen($file,w); //打开数据流. E8 r! D6 C' A7 R K8 M* t
if($fp) //如果成功打开
3 X* x3 {" X8 Y& e J& ^{
( Y2 w1 d6 _9 K/ Q- H1 i! L+ Z6 G: Lstream_set_write_buffer($fp,0); //设置缓冲区
0 ]* a2 j( v+ N. ~# M: D0 C, ifwrite($fp,$output); //写入内容
0 S$ D$ ~! A( l# T! Wfclose($fp); //关闭数据流1 ~! B# a0 }- e- U. O
}
3 V9 O2 ]4 f y# M! C0 u希望本文所述对大家的php程序设计有所帮助。
' a3 x' X: n' r* a: V' y( m2 w4 A7 [5 C, c0 p. e
更多网页制作信息请查看: 网页制作 |