• PHP+socket游戏数据统计平台发包接包类库


    <?php
    /**
     * @title:      PHP+socket游戏数据统计平台发包接包类库
     * @version:    1.0
     * @author:     perry <perry@1kyou.com>
     * @published:  2013-05-2
     */
    
    
    class TPkgxmk{
    		var $socket;          
    		var $connection;      
    		var $IP;             
    		var $Port;            
            var $buffer;      
            var $buffer_len;  
    	function __construct($IP,$Port){
    		$this->IP = $IP;
    		$this->Port = $Port;
    		$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)or die("Could not create	socket
    ");  //创建一个socket
    		$this->connection = socket_connect($this->socket, $this->IP, $this->Port) or die("Could not connet server
    "); //连接服务器
    		
    	}
    	function SendData(){
    		
    		    socket_write($this->socket, $this->buffer) or die("Write failed
    ");  //把数据写到缓冲区
                //循环读取回包
    			while ($this->buffer = socket_read($this->socket,65535,PHP_BINARY_READ)){
    			       if(empty($this->buffer)) $i++;
    			       if(empty($this->buffer) && $i==5){
    				      exit('Could not read backdata');
    				   }
    				   $this->buffdata.=$this->buffer;
    			}
    		}
    	
    	//组合包
    	function Endata($data){
    		$head="POST /PostBulletin HTTP/1.1
    ";
    		$head.="Connection:Close
    Content-Length:10
    
    ";
    		$pre = $data."malimalihong";  //数据附加字符串
    		$sign = md5($pre);
    		$data.="&sign=".$sign;
    		$this->buffer = $head.$data;
    		return $this->buffer;
    	}
    	//获取回包
    	function getdata($code="DECODE"){
    		if(!empty($this->buffdata)){
    			if($code=='DECODE'){
    				$result =  str_replace("
    ","<br />", htmlspecialchars($this->buffdata));
    				//$res = explode("<br /><br />", $result);
    				return $result;
    			}else{
                    //     echo $this->buffdata;
    			    return $this->buffdata;
    			}
    			
    		}
    	}
    }
    //使用例子
    //$strs = "cuttle=3021&parm0=perry&parm1=1&parm2=3&parm3=1&sign";
    //$strs.="malimalihong";
    //$sing = md5($strs);
    //$strs.=$sing;
    //$tp = new TPkgxmk("58.254.217.74", "8065");
    //$tp->Endata($strs);
    //$tp->SendData();
    //$arr = $tp->getdata();
    //$aa = str_replace("
    ","<br />", htmlspecialchars($arr));
    //
    //echo $aa;
    
    
  • 相关阅读:
    微信支付开发
    dz插件开发(一) 从常用的常量 变量 函数开始
    收集bootstrap的几个常用用法---tooltip提示框
    ucenter接口
    php防止表单重复提交
    支付宝接口 CI上集成
    telnet模拟post 调试的时候很好用
    __call 实现函数方法不同参数个数的重载
    微赞的分页
    结合微赞发布家和小程序流程
  • 原文地址:https://www.cnblogs.com/mayi168/p/3541316.html
Copyright © 2020-2023  润新知