基于PHP的Socket应用实例分析(fsockopen)
fsockopen是socket的客户端代码的封装,封装socket_create,socket_connect。
服务器端代码:server.php
复制代码代码如下所示:
< PHP
error_reporting(e_all);
(0)set_time_limit;
$地址= '127.0.0.1;
$端口= 10008;
创建端口
如果(($袜子= socket_create(af_inet,sock_stream,sol_tcp))= = = false){
回声socket_create()()失败:原因:。socket_strerror(socket_last_error())。;
}
绑定
如果(socket_bind(美元美元美元的袜子,地址,端口)= false){
回声socket_bind()失败:原因:。socket_strerror(socket_last_error($袜子))。;
}
监视器
如果(socket_listen(美元的袜子,5)= = = false){
回声socket_bind()失败:原因:。socket_strerror(socket_last_error($袜子))。;
}
而(真正的){
获取链接
如果(($ msgsock = socket_accept($袜子))= = = false){
回声socket_accepty()失败:原因:。socket_strerror(socket_last_error($袜子))。;
打破;
}
欢迎发送到客户机
味精=1.server美元送:欢迎;
socket_write(msgsock美元美元,味精,strlen($味精 / /));返回信息到客户端
echo'read客户端消息';
但美元= socket_read(msgsock美元,8192); / /得到的信息从客户端发送的
对讲=2.received美元美元消息:buf ;
echo对讲;
如果(假= socket_write(msgsock美元美元,对讲,strlen($对讲))){ / /返回信息到客户端
回声socket_write()失败的原因:。socket_strerror(socket_last_error($袜子))。;
{人}
echo'send成功;
}
socket_close($ msgsock);
}
socket_close(美元的袜子);
fsocket.php客户端代码:
复制代码代码如下所示:
< PHP
$ FP = fsockopen(127.0.0.1
如果(!$ FP){
echo $ errstr。()。与美元。n;
{人}
1.1;
主持人:localhost美元 R。;
$连接:关闭;
作用是:将内容(FP美元,美元);
而(!Feof($ FP)){
回声fgets($ FP,128);
}
Fclose($ FP);
}