| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
pphe
10年前发布

很简单的一个socket客户端PHP类

php 5,需要打开socket扩展

//socke操作类  class Socket {      private $host;//连接socket的主机      private $port;//socket的端口号       private $error=array();      private $socket=null;//socket的连接标识      private $queryStr="";//发送的数据      public function __construct($host,$port) {          if(!extension_loaded("sockets")){              exit("请打开socket扩展 ");          }          if(empty($host)) exit("请输入目标地址");          if(empty($port)) exit("请输入有效的端口号");          $this->host=$host;          $this->port=$port;          $this->CreateSocket();//创建连接           }             //创建socket      private function CreateSocket(){          !$this->socket&&$this->socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);//创建socket          $r=@socket_connect($this->socket,$this->host,$this->port);          if($r){              return $r;          }else{              $this->error[]=socket_last_error($this->socket);              return false;          }      }             //向socket服务器写入数据并读取      public function wr($contents){          $this->queryStr="";          $this->queryStr=$contents;          !$this->socket&&$this->CreateSocket();          $contents=$this->fliterSendData($contents);          $result=socket_write($this->socket,$contents,strlen($contents));          if(!intval($result)){              $this->error[]=socket_last_error($this->socket);              return false;          }          $response=socket_read($this->socket,12048);          if(false===$response){              $this->error[]=socket_last_error($this->socket);              return false;          }          return $response;      }                    //对发送的数据进行过滤      private function fliterSendData($contents){          //对写入的数据进行处理          return $contents;      }                    //所有错误信息       public function getError(){          return $this->error;      }             //最后一次错误信息      public function getLastError(){          return $this->error(count($this->error));      }      //获取最后一次发送的消息      public function getLastMsg(){          return $this->queryStr;      }             public function getHost(){          return $this->host;      }             public function getPort(){          return $this->port;      }             //关闭socket连接      private function close(){          $this->socket&&socket_close($this->socket);//关闭连接          $this->socket=null;//连接资源初始化      }             public function __destruct(){          $this->close();      }  }