## 客户端代码:
主要是用while(true)进行阻塞
~~~
<?php
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP); //创建字符集
socket_connect($socket,'127.0.0.1',6666); //创建连接
while(true){ //用循环阻塞客户端
fwrite(STDOUT,'请输入内容:'); //请输入内容
$in=fgets(STDIN); //获取输入内容
socket_write($socket,$in,strlen($in)); //发送消息
}
~~~
## 服务器端代码:
~~~
<?php
$soket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_set_option($soket,SOL_SOCKET,SO_REUSEADDR,true); //运行后端口立刻使用
$addr='0'; //所有内网都可以链接
$port=6666;
socket_bind($soket,$addr,$port); //绑定IP地址端口等
socket_listen($soket); //监听
while(true){
$connsock=socket_accept($soket); //等待连接
socket_getpeername($connsock,$ip,$port); //接受客户端信息
echo 'ip:'.$ip.'....port'.$port.'connetted'.PHP_EOL;
while(true){ //阻塞输出 客户端的阻塞输出
echo socket_read($connsock,1024);
}
}
~~~