首页 > 开发 > PHP > 正文

php简单socket服务器客户端代码实例

2024-05-04 23:35:22
字体:
来源:转载
供稿:网友
这篇文章主要介绍了php简单socket服务器客户端代码实例,本文给出了两个版本的服务器端口,对代码的问题和改进做了说明,并给出了使用这个socket服务器的客户端代码,需要的朋友可以参考下
 

本篇文章分享一个简单的socket示例,用php。实现一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务。

产生一个 socket 服务端
 

  1. <?php 
  2. /*文件名:socket_server.php*/ 
  3. // 设置一些基本的变量 
  4. $host="127.0.0.1";//Socket运行的服务器的IP地址 
  5. $port=1234;//Socket运行的服务器的端口,端口取值为1到65535之间的数字,前提是这个端口未被使用 
  6. // 设置超时时间,这里设置为永不超时,确保PHP在等待客户端连接时不会超时。 
  7. set_time_limit(0); 
  8. // 创建一个Socket,返回一个Socket句柄 
  9. $socket=socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create socket/n"); 
  10. //绑定Socket到指定的地址和端口 
  11. $result=socket_bind($socket,$host,$portor die("Could not bind to socket/n"); 
  12. // 开始监听外部连接 
  13. $result=socket_listen($socket,3) or die("Could not set up socket listener/n"); 
  14. /******到这里,服务器除了等待来自客户端的连接请求外基本上什么也不做******/ 
  15. // 另一个Socket来处理服务端与客户端的通信 
  16. $spawn=socket_accept($socketor die("Could not accept incoming connection/n"); 
  17. // 读取客户端的输入,当一个连接被建立后,服务器就会等待客户端发送一些输入信息,这些信息可以由socket_read()函数来获得,并把它赋值给PHP的$input变量 
  18. $input=socket_read($spawn,1024) or die("Could not read input/n"); 
  19. //socker_read的第二个参数用以指定读入的字节数,你可以通过它来限制从客户端获取数据的大小 
  20. // 下面这不就不解释了,不知道的自己面壁去 
  21. $input=trim($input); 
  22. //处理客户端输入并返回结果,当客户端发来数据信息后,信息输出就要靠socket_write()函数来完成 
  23. $output=strrev($input) ."/n";//反转字符串,这里仅仅是为了更好的区分两条信息 
  24. socket_write($spawn,$output,strlen($output)) or die("Could not write output/n"); 
  25. // 关闭sockets 
  26. socket_close($spawn); 
  27. socket_close($socket); 
?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表