一个PHP Socket类

xiaoxiao2022-06-12  82

写的一个PHP Socket类,功能还比较简单,不完善.

<? php /** */ /** *      * @project:socket类      * @license:GPL      *  @author : 8th@live.cn-星期八      * @description:PHP Socket协议异步通信      * @file:socket.class.php      * @created date:Fri Apr 25 12:22:33 CST 2008      * @last modified :      ** */ class  sockets {      public  $host; // 通信地址      public  $port; // 通信端口      public  $limitTime = 0 ; // 连接超时时间      public  $backlog = 3 ; // 请求队列中允许的最大请求数      private  $socket = null ;      private  $result = null ;      private  $spawn = null ;      private  $input = null ;      // 构造函数      public  function __construct()      {         set_time_limit($ this -> limitTime);         $ this -> socket  =  socket_create(AF_INET, SOCK_STREAM,  0 ) or die( " Could not create socket\n " );     }      // 创建Socket连接,监听外部连接      public  function socket_bind_listen()      {         $ this -> result  =  socket_bind($ this -> socket, $ this -> host, $ this -> port) or die( " Could not bind to socket\n " );         $ this -> result  =  socket_listen($ this -> socket, $ this -> backlog) or die( " Could not set up socket listener\n " );     }      // 接受请求连接,调用socket处理信息      public  function accept_client()      {         $ this -> spawn  =  socket_accept($ this -> socket) or die( " Could not accept incoming connection\n " );         $msg  =   " Welcome to the Test Server " ;         socket_write($ this -> spawn, $msg, strlen($msg));     }      //  读取客户端输入       public  function read_client()      {         $ this -> input  =  socket_read($ this -> spawn,  2048 , PHP_NORMAL_READ) or die( " Could not read input\n " );      }      //  处理客户端输入并返回数据       public  function write_client()      {         socket_write($ this -> spawn, $ this -> input, strlen ($ this -> input)) or die( " Could not write output\n " );     }      // 析构函数      public  function __destruct()      {         socket_close($ this -> spawn);          socket_close($ this -> socket);      } } /** */ /** * $socket_test=new sockets(); $socket_test->host="192.168.0.2"; $socket_test->port="13654"; $socket_test->socket_bind_listen(); $socket_test->accept_client(); $socket_test->read_client(); $socket_test->write_client();      ** */ ?>
转载请注明原文地址: https://www.6miu.com/read-4933269.html

最新回复(0)