매우 간단한 소켓 클라이언트 PHP 클래스
풀어 주다: 2016-07-25 08:42:28
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();
- }
- }
复制代码
|
매우 간단한 소켓, PHP
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31