参考其他文章做的简单的长连接demo:
参考文章地址:http://www.tuicool.com/articles/QjIZBr
server.php
<?php
set_time_limit(0);
$host="localhost";
$port=1000;
//while(true){
//创建一个连接
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die("cannot
create socket\n");
//绑定socket到端口
$result=socket_bind($socket,$host,$port)
or die("cannot bind port to
socket\n");
//开始监听这个端口
$result=socket_listen($socket,4) or die("could not
set up socket listen\n");
//接受连接,另一个socket来处理通信
while(true){
$msgsock=socket_accept($socket) or die("cannot accept incoming
connection\n");
if($msgsock){
echo date("Y-m-d H:i:s D
a\n");
}
//读取客户端发送过来的信息
$input=socket_read($msgsock,1024)
or die("cannot read input\n");
$input=trim($input);
$output=strrev($input)."顺序反过来了吧\n";
//对接收到的信息进行处理,然后返回到客户端
socket_write($msgsock,$output,strlen($output)) or
die("cannot write");
socket_close($msgsock);
}
client.php
<?php
set_time_limit(0);
$host="localhost";
$port=1000;
//创建一个socket
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or
die("cannot create socket\n");
$conn=socket_connect($socket,$host,$port) or
die("cannot connect server\n");
if($conn){echo "client connect
ok!";}
socket_write($socket,"hello world!") or die("cannot write
data\n");
$buffer=socket_read($socket,1024,PHP_NORMAL_READ);
if($buffer){
echo "response
was:".$buffer."\n";
}
//socket_close($socket);
?>
网上说php搞socket不是很稳定,不过自己没有实际测试过
倒是看到swoole扩展,这个貌似可以瞅瞅来做长连接