验证中...
语言: PHP
分类: Web开发技术
最后更新于 2018-07-09 15:26
片段 1 片段 2
server.php
原始数据 复制代码
<?php
//SERVER端的代码
set_time_limit(0);
$ip='127.0.0.1';
$port=5000;
/**
socketet通信整个过程
socketet_create //创建一个套接字
socketet_bind //给套接字绑定 ip 和端口
socketet_listen //监听套接字上的连接
socketet_accept //接受一个socketet连接
socketet_read //接收客户端 发送的数据
socketet_write //将数据写到 socketet 缓存 向客户端发送
socketet_close //关闭套接字资源
*/
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
if(($sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP))<0){
echo "socketet_create() 失败的原因是:".socketet_strerror($sock).EOL;
}
if(($ret=socket_bind($sock,$ip,$port))<0){
echo "socketet_bind() 失败的原因".socketet_strerror($ret).EOL;
}
if(($ret=socket_listen($sock,4))<0){
echo "socketet_listen() 失败的原因".socketet_strerror($ret).EOL;
}
$count=0;
do{
if(($msgsock=socket_accept($sock))<0){
echo "socket_accept() failed:reason ".socketet_strerror($msgsocket).EOL;
}else{
//发送到客户端
$msg="测试成功!".EOL;
socket_write($msgsock,$msg,strlen($msg));
echo "测试成功了啊".EOL;
$buf=socket_read($msgsock,8192);
$talkback="收到的信息:$buf".EOL;
echo $talkback;
if(++$count>=5){break;}
}
socket_close($msgsock);
}while(1);
socket_close($sock);
client.php
原始数据 复制代码
<?php
header("Content-type:text/html;charset=utf-8");
error_reporting(E_ALL);
set_time_limit(0);
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
$ip='127.0.0.1';
$port=5000;
//创建
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if($socket==FALSE){
echo 'create fail:'.socket_strerror(socket_last_error());
}else{
echo 'ok';
}
//2、连接
echo 'we will try contect '.$ip.':'.$port.EOL.'------------';
$result=socket_connect($socket,$ip,$port);
if($result==FALSE){}
$in='hi';
$in.=',world';
$out='';
//向服务器写入
if(!socket_write($socket,$in,strlen($in))){
echo 'write fail:'.socket_strerror(socket_last_error());
}else{
echo '---send to server succefully!'.EOL.'---';
echo 'the connect is '.$in;
}
//从服务器端获取
while($out=socket_read($socket,8129)){
echo '-----receive from server succefully'.EOL.'-----';
echo 'the contents is '.$out;
}
//4.关闭
echo '------close socket...';
socket_close($socket);
echo 'closeed ok';

评论列表( 1 )

867614_gnome_375
gnome 2018-07-09 15:26

本实例用php建立一个长连接

你可以在登录后,发表评论

搜索帮助