<?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\n"); //创建一个socket
$this->connection = socket_connect($this->socket, $this->IP, $this->Port) or die("Could not connet server\n"); //连接服务器 }
function SendData(){ socket_write($this->socket, $this->buffer) or die("Write failed\n"); //把数据写到缓冲区
//循环读取回包
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\r\n";
$head.="Connection:Close\r\nContent-Length:10\r\n\r\n";
$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("\n","<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("\n","<br />", htmlspecialchars($arr));
//
//echo $aa;

PHP+socket游戏数据统计平台发包接包类库的更多相关文章

  1. Apple的App Analytics统计平台你必须知道的Q&A整理与翻译

    Apple的App Analytics统计平台你必须知道的Q&A整理与翻译 Apple最近在iTunesConnect里最新发布了App Analytics统计平台,提供了现有友盟统计平台和自 ...

  2. 宜人贷PaaS数据服务平台Genie:技术架构及功能

    上篇:架构及组件 一.数据平台的发展 1.1 背景介绍 随着数据时代的到来,数据量和数据复杂度的增加推动了数据工程领域的快速发展.为了满足各类数据获取/计算等需求,业内涌现出了诸多解决方案.但大部分方 ...

  3. 基于MaxCompute的媒体大数据开放平台建设

    摘要:随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有 ...

  4. Apple的App Analytics统计平台你必须知道的

    Apple最近在iTunesConnect里最新发布了App Analytics统计平台,提供了现有友盟统计平台和自有统计平台无法统计的数据,具有自己的独有特点,尤其是下面几个最让人头疼的流量分析转化 ...

  5. 大数据计算平台Spark内核解读

    1.Spark介绍 Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台,在2010年开源,目前是Apache软件基金会的顶级项目.随着 Spark在大数据计算领域的暂露头角,越来越多 ...

  6. 某公司基于FineBI数据决策平台的试运行分析报告

    一.数据平台的软硬件环境 二.组织机构和权限体系 组织机构:平台中已集成一套组织机构,可以建立部门.人员.也可以与现有系统的组织机构集成,将组织机构导入到平台中. 功能权限:通过配置功能点URL的方式 ...

  7. Android之友盟多渠道打包与数据统计

    文章大纲 一.多渠道打包与数据统计介绍二.友盟实现多渠道打包实战三.友盟数据统计实战四.项目源码下载五.参考文章   一.多渠道打包与数据统计介绍   多渠道打包,相信很多同学都知道.在Android ...

  8. 打造实时数据集成平台——DataPipeline基于Kafka Connect的应用实践

    导读:传统ETL方案让企业难以承受数据集成之重,基于Kafka Connect构建的新型实时数据集成平台被寄予厚望. 在4月21日的Kafka Beijing Meetup第四场活动上,DataPip ...

  9. 个推数据统计产品(个数)iOS集成实践

    最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数据统计产品通过专业的 ...

随机推荐

  1. 这只是一篇用Markdown写的随记,就是熟悉熟悉MarkDown而已

    这几天的随想 今天是八月十一号了,来到公司实习已经第八天了,包块周末的话就是十二天了,我在这十二天里干了什么,转眼半个月就过去了 马上就要开学了,这个暑假干了些什么,单词单词也没背多少,之前七月回家有 ...

  2. iOS - Swift NSValue 值

    前言 public class NSValue : NSObject, NSCopying, NSSecureCoding 将任意数据类型包装成对象. 1.比较两个 NSValue 类型数据的大小 l ...

  3. 12 Using_explain_plan

    The row source tree is the core of the execution plan. The tree shows the following information: An ...

  4. 在PC端或移动端应用中接入商业QQ的方法

    今天看博友的博客学习了一种很有用的方法: 在页面中需要接入企业的QQ,访问网址:http://shang.qq.com/widget/consult.php.(就是API接口),然后你只需要登录你的Q ...

  5. 5.7 C和C++的关系

  6. ajax请求成功或失败的参数

    success:function(response, status, xhr){ }, error:function(xhr, errorText, errorType){ alert(errorTe ...

  7. [转]C++中引用(&)的用法和应用实例

    from: here 对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符 ...

  8. linux优先级、性能监控指令

    一.优先级 优先级的值=优先系数+nice值     优先系数由系统内核决定,不可更改 nice值可以手动更改,范围是 -20~19 优先级的值越低,优先级越高:优先级的值越高,优先级越低. 所以想调 ...

  9. 禁止chrome浏览器自动填充表单的解决方案

    经过测试,对chrome42,重写input: auto-fill样式不起作用,加上autocomplete="off"也不起作用. 因此使用了两个隐藏的输入框: <inpu ...

  10. jquery函数

    1.ready函数 当 DOM(文档对象模型) 已经加载,并且页面(包括图像)已经完全呈现时,会发生 ready 事件. $(document).ready(function (){alert('11 ...