加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-25 07:43:47 所属栏目:PHP 来源:互联网
导读:很简单的一个socket客户端PHP类

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

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
        [emailprotected]_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();
    }
}

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读