socket(php)(短连接)(无循环,能接发一次,自动关闭)整理版本1
2017-08-13 09:25
169 查看
<?php $host="192.168.1.57"; //Socket运行的服务器的IP地址 $port=8079; //Socket运行的服务器的端口,端口取值为1到65535之间的数字,前提是这个端口未被使用 set_time_limit(0); // 设置超时时间,这里设置为永不超时,确保PHP在等待客户端连接时不会超时。 //echo 1; //能输出1 $socket = socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create socket\n"); // 创建一个Socket,返回一个Socket句柄,参数:哪个协议,套接字使用的类型,参数一下的具体协议(可以使用 getprotobyname() 函数进行读取) $result = socket_bind($socket,$host,$port) ; //绑定Socket到指定的地址和端口 $result = socket_listen($socket,3) ; // 开始监听外部连接,第二个参数基本床3,4,5,也可以不传 /******到这里,服务器除了等待来自客户端的连接请求外基本上什么也不做******/ $spawn = socket_accept($socket) ; // 接收连接,另一个Socket来处理服务端与客户端的通信 if(socket_getpeername($spawn , $host , $port)) { echo "Client $host : $port is now connected to us."; } if($spawn){ echo '<br /n>'; $date = date("Y-m-d H:i:s D a"); echo $date; echo '<br /n>'; } //读取客户端的输入 $input=socket_read($spawn,1024) ; // 读取客户端的输入,当一个连接被建立后,服务器就会等待客户端发送一些输入信息,这些信息可以由socket_read()函数来获得,并把它赋值给PHP的$input变量,socker_read的第二个参数用以指定读入的字节数,你可以通过它来限制从客户端获取数据的大小 socket_last_error(); //对接收到的信息进行处理,然后返回到客户端 $input=trim($input); //返回字符串 $input,去除首尾空白字符后的结果。如果不指定第二个参数 //处理客户端输入并返回结果,当客户端发来数据信息后,信息输出就要靠socket_write()函数来完成 echo "laizikehuduande:" . $input; echo '<br /n>'; $output="fangeikehuduande:\n" . strrev($input); //反转字符串,这里仅仅是为了更好的区分两条信息 echo $output; socket_write($spawn,$output,strlen($output)); socket_last_error(); echo '<br /n>'; // 关闭sockets socket_close($spawn); socket_close($socket); printf("Closed the socket"); ?>
相关文章推荐
- socket(php)(短连接)(循环发count次,但是每次都得重新连接,会自动断开)整理版本2
- socket(php)(不确定是否是长连接)(一次连接,多次接受,发送特定字符时关闭连接)整理版本3
- php模拟socket一次连接,多次发送数据的实现代码
- php模拟socket一次连接,多次发送数据的实现
- php模拟socket一次连接,多次发送数据的实现代码
- java.net.SocketException: Broken pipe /Mysql在经过8小时不使用后会自动关闭已打开的连接
- php模拟socket一次连接,多次发送数据的实现
- socket关闭连接 -- shutdown系统调用
- DataAdapter的Fill方法的连接是否会自动关闭的测试
- 解决“此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭”问题
- 如何禁用/关闭最新版本WordPress的修订版本和自动保存功能
- android UDP多点广播,并自动建立Socket连接
- 当客户端socket关闭时,select模型的server端该如何完美的释放掉连接的socket? [问题点数:100分,结帖人guopo]
- 背景图只显示一次,不循环,另外还有一个是PHP下的换行显示
- 关于php、js弹框及自动关闭、定时跳转
- php-fpm用socket连接
- C#关闭本地Socket监听,解决本地套接字只能用一次的问题.NET
- 纪一次TCP/IP连接关闭全程
- 获取连接关闭时socket的有关信息