后端
文章平均质量分 61
InsZVA
啊 你们要是看了我发的博客很多错误的地方 指出来啊 我比较菜 坑人的
展开
-
php在线非注册聊天系统的开发-中
接上一篇,对安全性加以防范,使用mysqli_real_escape_string:因为只有say.php传入的数据可能有用户的输入,故在say.php加入以下两行:$_POST[uname]=$mysqli->real_escape_string($_POST[uname]);//Protect SQL Injection$_POST[text]=$mysqli->real_esca原创 2015-03-26 19:00:03 · 959 阅读 · 0 评论 -
Go语言黑魔法中的问题修正
原文: http://studygolang.com/articles/2909文中大多技巧都是正确的,但是结构体和[]byte之间的转换:第三式 - 结构体和[]byte互转有一天,你想把一个简单的结构体转成二进制数据保存起来,这时候你想到了encoding/gob和encoding/json,做了一下性能测试,你想到效率有没有可能更高点?于是你又试了encoding/binady原创 2016-03-13 00:13:32 · 1048 阅读 · 0 评论 -
Golang1.7 Goroutine源码分析
一、 Golang简介1.1概述 Golang语言是Google公司开发的新一代编程语言,简称Go语言,Go 是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块化程序。 Go 编译到机器码非常快速,同时具有便利的垃圾回收和强大的运行时反射。而他最广为人知的特性便是语言层面上对多核编程的支持,他有简单的关键字go来原创 2016-06-29 16:29:07 · 4441 阅读 · 3 评论 -
微信支付官方SDK-phpV3的一处坑
在使用微信支付官方SDK时,发现成功的回调处理程序无法正常调用,经审查,是 lib/WxPay.Api.php 中第415中使用了 $xml = $GLOBALS['HTTP_RAW_POST_DATA']; 而该语句只有在php.ini设置后才可使用,导致xml输入数据获取不到。 改为 $xml = file_get_contents("php://input"); 则可以适用一切情况。 还是希原创 2016-08-07 23:06:48 · 2409 阅读 · 4 评论 -
WebRTC初试用-在线视频聊天室的基本流程
WebRTC技术在线视频传输,传统做法是做一个中继服务器,负责客户端的发现和数据的中介传输,那么就会产生一个很明显的问题,中继服务器需要 传输大量的数据,不仅如此还有复杂的流信息控制以及同步等问题。而且,随着数据量的增大,中继服务器单机无法承载,不得不做负载 均衡甚至地区分发等,大大增加系统复杂度,增加了各种成本,降低了稳定性。而且服务器作为中介,有记录用户传输数据的能力,用户 的隐私问题也值原创 2016-10-17 17:39:09 · 1603 阅读 · 0 评论 -
匹配队列问题
匹配队列问题最近在做视频聊天平台,想让他支持随机配对,做一个匹配队列。要求每个客户端到达后加入队列,匹配时随机找到 匹配目标。并且能够实现,广播所有人正在匹配的人数,在客户端离开后,也能及时清除垃圾。最初的设想–无头苍蝇乱撞最初的设计方案,采用每个客户端一个线程,同时每个客户端连接的时候,进入队列,客户端匹配的时候,更改状态 为正在匹配,并在队列中搜寻目标。如果搜寻到了目标,先试图获得自己的锁,原创 2016-10-18 22:15:22 · 2361 阅读 · 0 评论 -
Nginx源码分析 - Nginx启动以及IOCP模型
Nginx 源码分析 - Nginx启动以及IOCP模型版本及平台信息本文档针对Nginx1.11.7版本,分析Windows下的相关代码,虽然服务器可能用linux更多,但是windows平台下的代码也基本相似 ,另外windows的IOCP完成端口,异步IO模型非常优秀,很值得一看。Nginx启动曾经有朋友问我,面对一个大项目的源代码,应该从何读起呢?我给他举了一个例子,我们学校大一大二是在紫原创 2016-12-27 21:21:23 · 7113 阅读 · 2 评论 -
HTML5直播技术探究
传统直播技术,大多使用RTMP通过Flash进行传输。随着HTML5的逐渐实现,<video>等媒体标签的浏览器支持, 很多视频逐渐向HTML5靠拢。Youtube等视频网站纷纷开始使用HTML5播放器,然而纵观当前的直播网站,大多 还是依赖Flash。直播为何不采用HTML5呢?目前的HTML5直播思路有以下几种。一是使用js调用WebGL渲染视频,用websocket/XHR传输,比如jsm原创 2017-02-02 15:28:31 · 3707 阅读 · 0 评论 -
制作一个自己的对战平台
缘起因为在浙大,物理网卡的地址被分配为222.205.XX.XX,但是子网掩码是255.255.255.0,这样的话虽然大家都在一个局域网里面,但是却不一定在同一个子网。 局域网联机游戏为了发现局域网中的主机,会发送广播包,有些局域网联机游戏,会发送到255.255.255.255这个广播地址(典型代表War3),但是这个广播地址 是只能广播到子网的,路由器默认不转发,这样就造成了我们同在校园网原创 2017-03-14 00:30:58 · 5824 阅读 · 1 评论 -
linux内核与netlink有关的两个坑
最近做一些与netfilter/ulogd2性能调优有关的工作(https://github.com/InsZVA/ulogd-with-syslog-tcp),在过程中发现了两个内核概念理解的坑点。第一个问题是下面代码:```clen = recv(fd, ui->nfulog_buf, bufsiz_ce(upi->config_kset).u.value, 0);原创 2017-06-14 16:14:36 · 1587 阅读 · 0 评论 -
内存映射系统开发
为了使用内存作为数据库的主要存储方式,开发内存数据库,我们需要对内存中的数据进行保证。即可以备份与还原,那么为了将内存中的数据备份到外存中,我们可以采取以下策略:选取一个外存文件,将其映射到某个内存地址;当更新内存时,适时地更新外存文件;系统重启时,从外存中重新读取内存内容。那么这里就有几个问题,首先是映射问题,起初我尝试了win32api: createFileMapp原创 2016-03-18 14:55:47 · 957 阅读 · 0 评论 -
打造先进的内存KV数据库-4 伙伴内存管理系统
伙伴算法大概是这样的,monkey储存引擎(今年猴年了嘛~取个名字,重了再换)的内存管理使用伙伴算法,大概原理是这样的: 1.多个空闲内存块的链表,分别是不同大小的内存块,1K,2K,4K,8K,…,,按照这样的情况一直到4M,当程序申请内存时,选择一个稍大于其所要申请的块,比如申请1023字节,给1K,1024字节也给1K(为什么呢– 后文会讲),2056字节给4K。 2.如果要给的内存块没有原创 2016-01-04 19:34:33 · 1428 阅读 · 0 评论 -
多级分销对接第三方API获取数据系统的优化
最近在做一个基于有赞的多级分销管理系统,所有成员的店面均在有赞商城,使用有赞API获得他们的业绩,但是有赞提供的分销只有一级,故制作该系统。考虑到减轻工作量,理清层次关系,采用了OOP设计方法,将数据库,表封装为基类,分销成员,店面等继承表。但是在列出销售量报表和分销商的时候出现了严重性能问题,由于分销商的业绩奖励是与其下级分销商挂钩的,故封装数据库的时候,进行了DFS遍历来获得所有分销商的关原创 2015-07-23 13:02:01 · 2623 阅读 · 0 评论 -
php7 性能测试
满怀激动的编译安装了php7 RC6然后对整数相加相乘及浮点数相加相乘做了测试:<?php echo "整数加法性能:"; $time = time(); for($i = -214748364;$i < 214748364;$i ++); echo "4000M次循环相加:" . (time() - $time) . "s"; echo "整数乘法性能:"; $time = t原创 2015-11-09 17:22:32 · 865 阅读 · 0 评论 -
php在线非注册聊天系统的开发-初
杨老板的勿忘初衷页面开了(http://www.shenmegui.wang),看到杨老板的页面中GoChat部分没有做,那么就由我这种廉价劳动力来解决吧:首先来数据表的建立:然后在配置文件config.php中写入全局变量,为了可移植性, 移植时只需改变此php内容:那么我就可以方便地写发送新消息的say.php了:当然这里存在严重的SQL注入漏洞,我会在中篇或者下篇处理原创 2015-03-25 22:14:39 · 1431 阅读 · 0 评论 -
PHP Linux服务器自动发邮件的问题
在给野马家澳洲代购写后台管理的时候,需要用到自动发邮件,就从网上找了一份smtp的代码如下:<? class smtp { /* Public Variables */ public $smtp_port; public $time_out; public $host_name; public $log_file; public原创 2015-04-19 11:27:22 · 740 阅读 · 0 评论 -
php multipart/form-data DOS C#测试工具
根据乌云网,百度攻防安全实验室提供的最新漏洞,存在于php各版本:PHP解析multipart/form-data http请求的body part请求头时,重复拷贝字符串导致DOS。远程攻击者通过发送恶意构造的multipart/form-data请求,导致服务器CPU资源被耗尽,从而远程DOS服务器。原文链接:http://drops.wooyun.org/papers原创 2015-05-23 13:17:14 · 1678 阅读 · 1 评论 -
nodejs-初探-简单的判定位置是否在市区API
看来nodejs还是越来越火了,WordPress也用上了nodejs抛弃了php,虽然php7比php5的效率高了一倍,然而在node,java等静态语言面前,还是不值一提.当然php还是有他的好处,开发迅速,修改便捷,适宜于调用api做应用层.另外由于node的封装性较低,node可以操作很多较为低级的操作,做路由,代理,解析头是相当方便,再加他不错的执行效率,我觉得用node做一些计算密集和原创 2015-11-27 22:30:48 · 1169 阅读 · 0 评论 -
PHP路由
打造php路由器1.url重写apache服务器:目录下放置.htaccess文件,内容类似下面这样:RewriteEngineOnRewriteRule^(.*)$ index.php?$1 [L]RewriteRule的语法:RewriteRule正则表达式 替换后的内容(这里用$1$2来获得正则匹配的内容)[L]的意义为,匹配改写后不再向下继续匹原创 2015-07-09 21:22:31 · 1310 阅读 · 1 评论 -
CPU L2缓存初探
CPU L2缓存初探探索目的为了设计高性能的内存数据库,往往要考虑CPU缓存的命中率,查阅资料发现,Intel架构的处理器有3级缓存的设置,其中L1,L2较小,L3较大但被三个核心所公用。在我使用的i7 4712mq中,使用dmidecode查看缓存大小:inszva@inszva-Aspire-E5-572G:~$ sudo dmidecode[sudo] password for inszva原创 2015-12-17 14:38:36 · 2920 阅读 · 2 评论 -
打造先进的内存KV数据库-1 B树索引的建立(1)
设计目的在搜索引擎的设计中,往往需要使用倒排索引,在当前内存价格不断走低的情况下,内存数据库必然会成为主流。KV数据库由于适合Map-Reduce用于分布式处理。 本系统设计实现如下目标: * 实现极高性能的查询 * 实现分布式集群储存 * 实现可靠的日志系统索引设计索引采用B数索引,这样做的目的是大大利用CPU的缓存,让每个节点的大小与CPU二级缓存相匹配,另外,将索引值连续储存在节点中,原创 2015-12-18 15:17:08 · 2242 阅读 · 0 评论 -
打造先进的内存KV数据库-6 PHP支持
PHPphp作为使用极广的程序设计语言,monkey数据库对php的支持是必须的~代码实现//test.php<?phpclass MonkeyDB{ private $socket; private function read() { $data = ""; $total = 0; $t = fread($this->so原创 2016-01-05 23:50:34 · 1788 阅读 · 0 评论 -
linux源码 网络包接收--从中断到协议栈
本文基于4.11内核linux在硬中断触发后,会进入do_IRQ函数(arch/x86/kernel/irq.c):/* * do_IRQ handles all normal device IRQ's (the special * SMP cross-CPU interrupts have their own specific * handlers). */__visible unsig原创 2017-06-27 23:36:53 · 1793 阅读 · 0 评论