自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (2)
  • 收藏
  • 关注

转载 TT:win-client

原 TeamTalk初学笔记2---关于win-client【第一篇】收藏pengmx发表于 2年前 阅读 1094 收藏 1 点赞 0 评论 0 破译“粽”子代码,拿最高悬赏!>>>  摘要: 接初学笔记第一篇,以下内容介绍了win-client的基础部分以及公用函数等。个人笔记,纯属记录学习的历程。

2017-06-05 10:12:45 759

转载 TeamTalk 服务器--配置

TeamTalk 服务端分析 二、配置作者: zhyh 时间: 2014-12-22 22:35:00 分类: TeamTalk前言近期由于忙于工作,还有些纠结个人的事情,本来说好的本文,不得不拖到今天才写。配置说明在此,为了便于说明,我们做如下约定:Name 内网IP 外网IP(IP1/IP2) InstanceC

2017-04-14 16:34:26 2320

转载 心跳保活---TeamTalk心跳保活机制分析

由于蘑菇街的TeamServer包含了login_server ,msg_server等几个不同的服务端,本文会逐步进行分析,并持续更新。。。。。首先分析为什么需要应用层的心跳机制对应IM使用TCP协议还是UDP协议还是个有争议的话题,仁者见仁智者见智,不过个人觉得这得看实际应用场景,根据应用场景的不同用不同的协议。在TCP协议实现的IM中,需要考虑一个很重要的问题就是心跳保活,那么什么是

2017-04-11 11:32:15 504

转载 Teamalk在服务端新增协议

转自:www.bluefoxah.org/teamtalk/add_protocol.html1、如何增加一个协议很多人问我如何增加一个处理协议,我先大致讲下整个过程,在后面针对每一步进行详细的讲解,本次就以群里一个群友问得如何增加修改密码的协议为例。因为新版TT是基于PB处理的,所以,1、我们要在pb文件中增加相应的命令号,协议定义。2、重新生成协议文件。3、在服

2017-04-11 11:27:09 489

转载 TeamTalk源码分析之http_msg_server对外提供API

原文:www.bluefoxah.org/teamtalk/provide_api.html1、如何提供一个接口作为一个完整的平台,对外提供API是必不可少的,TT第二版跟第一版一个比较明显的变化,就是相比第一版多了一个http_msg_server这个模块,虽然这个模块暂时没有提供太多的功能,但是却也提供了一个参考。不过还是有很多朋友在群里咨询询问如果利用http_m

2017-04-11 11:25:41 1005

转载 TeamTalk服务端分析之服务端以及客户端流程

原文:www.bluefoxah.org/teamtalk/server_flow.html前言在上一篇中,简单的分析了下各个服务端的配置,在这一篇中,简单的分析下TeamTalk服务端的整个运作流程。服务端流程服务端的启动没有严格的先后流程,因为各端在启动后会去主动连接其所依赖的服务端。不过在此,如果是线上环境,还是建议按照如下的启动顺序去启动(也不是唯一的顺

2017-04-11 11:23:42 625

原创 winform datagridview控件 一列多个按钮

基本思想:编写dataGridView的CellPainting事件,对dataGridView 指定的列进行N(N为一列中要存放的按钮数)等份,然后调用CellMouseClick来响应按钮的单击事件。如果要换成图片,可以在CellPainting事件中,将e.Graphics.DrawString()函数换成e.Graphics.DrawImageUnscaledAndClipped(),

2017-02-16 22:04:43 5847

原创 c# 画控件圆角矩形边框

private void label1_Paint(object sender, PaintEventArgs e) { Draw(e.ClipRectangle, e.Graphics, 16); base.OnPaint(e); }private void Draw(Rectangle rectangle, Gr

2016-11-11 21:38:06 11046 2

原创 c# groupbox 标题居中,并修改边框颜色

private void groupBox1_Paint(object sender, PaintEventArgs e) { e.Graphics.Clear(groupBox1.BackColor); SizeF fontSize = e.Graphics.MeasureString(groupBox1.Text, groupBo

2016-11-09 22:10:12 6465

原创 关于textbox输入限制的一点小结

1.将textbox的字符自动转为大写或小写先 将textbox的CharacterCasing属性设为:Upper(大写) 或 Lower(小写)再 将该textbox所在窗体的KeyPreview属性设为:True 2.对输入字符的限定:1)限定输入单个字符:可以使用KeyPress事件,如下实例 private void textBox2_KeyPress(object

2016-08-20 10:07:07 1520

原创 实习心得

最近在某家还算知名企业进行了短暂的实习,收获良多,现总结如下。首先,作为一名程序员写代码就要有一定的规范,这一定要在平时的自我练习中养成。绝对不要依赖IDE来帮你完成这项任务,因为你不能保证你团队用的IDE都有这个功能。不然当你写的代码实现再强大的功能或算法,让人看到了都会有种看不下去的感觉。而且你要记住,这些代码不像你在学校搞学术研究那样,你自已看看就行,能运行出结果就行。你在公司当中,是团

2016-05-18 21:10:13 847

原创 FBO上画三角形

FBO=Frame Buffer Object,其作用主要是对载入的纹理进行再次处理(个人理解)。在FBO上画的几何图形或贴的纹理,可以进行二次处理,然后显示在屏幕上。FBO的创建与VBO类似,都是经过:设定编号->绑定编号->生成对象,这三步。需要特别主要的是,对于一个FBO,要开辟一个一定大小的内存空间,用于存储画在FBO上的形状(或纹理)。下文以在FBO上画一个三角形为例,简述下FBO的

2016-03-16 22:47:48 889

原创 IntelliJ IDEA首次使用问题解决2

这些天要学习个libgdx,前辈推荐使用IntelliJ IDEA进行开发。安装过程的话也是一路Next到底。不过之前要先安装好JDK和SDK,以及gradle ,并且要配置好JAVA开发环境,然后要设置一个环境变量名为ANDROID_HOME的用来指向SDK安装目录。在导入libgdx工程项目:build.gradle时弹出了“failed to find target android-20

2016-03-09 23:03:18 2512

原创 NDK开发环境的搭建

1.下载、安装JDK;2.下载、安装SDK,打开SDK Manager.exe 根据需要下载安装相应的工具包。如下图1所示。个人下载的安装工具包有:Android SDK Tools、Android SDK Platform-tools、Android SDK Build-tools和SDK Platform。图12-1.将SDK下的android.bat所在文件的路径添加到系

2016-02-27 20:24:13 374

原创 OpenGL学习(5)

纹理贴图纹理贴图是OpenGL渲染的重要基础操作之一,其本质就是在创建的窗口上,用程序读取图片数据,然后显示出来。预备知识:1.纹理坐标范围:0~12.纹理与图像坐标的对应关系:纹理坐标在左下角为原点(0,0);而图像是从左上角第一行从左到右逐行读取的,所以其左上角为原点(0,0);纹理贴图的具体实现步骤为:读取纹理文件->生成纹理ID->生成纹理->设置纹理参数。下文

2016-02-27 14:01:32 546

原创 OpenGL学习(4)

给图形上色对于图形的上色有两种基本的方法:直接使用glColor~() 系列的函数 和 使用shader脚本。下文将简要介绍下这两种方法。1.直接使用glColor~() 系列的函数方法:在相应的坐标顶点使用该函数,如下程序所示 glBegin(GL_TRIANGLES); glColor3f(1.0f,0.0f,0.0f);//set the red glVe

2016-02-26 22:00:38 313

原创 OpenGL学习(3)

多种方式画一个三角形在OpenGL中最最基本的图元是点,由点可以组成各种基本的图形(如线段、三角形、多边形)和复杂的图形(如各种立方体图形等)。在各种图形当中,三角形又是最为基础的,因此掌握三角形的画法是必须的。下面以个人的认识和能力完成一个三角形的多种画法。1.利用glBegin()和glEnd()函数的不同模式来画三角形(注意,顶点坐标必须写在glBegin()和glEnd()

2016-02-26 16:23:23 775

原创 OpenGL学习(2)

创建一个窗口由上一篇我们已经创建出一个窗口了,那么其程序是如何的呢?这是我们要讨论的下一个问题。利用GLFW库创建一个窗口的具体步骤如下:1.利用glfwInit() 函数初始化GLFE,并判断是否初始化成功; if (!glfwInit()) { fprintf(stderr,"Failed to the initialized GLFW.\n"); r

2016-02-26 14:30:17 952

原创 OpenGL学习(1)

VS2010下OpenGL环境搭建对于一个库的运用最开始就是搭建其开发环境,话不多说,开始进行VS2010下OpenGL下的环境搭建。首先,要下载相关的第三方库:GLFW和GLEW。在这里不再使用GLUT和freeGLUT库。其次,将下载的库解压出来(如图1),将相应的文件加入到相应的文件夹下。主要有三类文件,具体操作如下:图11.对于解压出来的

2016-02-26 14:02:50 358

原创 2015年度小结

以前在纸上总结,总是要先感慨下时间过的有多快,自已有多后悔没把握过去的时光。一方面是由于思想上不太成熟,行动上不够敏捷,一直以来都是想的多,做的少,导致了很多时候都是在虚度光阴;另外一方面因为没有明确的目标,对未来毫无规划,基本上都是在重复这前一天的事。但今年似乎增进了很多,无论哪一方面,使得生活似乎变得充实了许多。在2015年前几月份的时候,本来不想再搞HEVC研究了的,所以就自学了将近一个

2015-12-27 21:43:49 345

原创 常用图像压缩方法的对比

压缩方法名称压缩算法优、缺点行程长度压缩RLE将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替如:aaabccccccddeee,压缩后为3ab6c2d3e对于拥有大面积、相同颜色区域的图像具有较好的压缩效果霍夫曼编码频繁用的数据用较短的代码代替,很少用的数据用较长的代码代替,每个数据的代码各

2015-11-12 12:04:37 3531

原创 SQL基础学习8

窗口函数何为窗口函数

2015-11-09 10:28:45 324

原创 SQL基础学习7

表的加减法何为集合运算:对满足同一规则的记录进行的加减等“四则运算”,以行方向为单位进行操作(即导致行数的增减)表的加法——UNION(并集):SELECT name,priceFROM ShopUNIONSELECT name,priceFROM Shop1;解释:将表Shop与表Shop1进行并集运算;结果中会除去重复的记录P.S:作运算对象的记录的列数必须

2015-11-08 21:36:11 276

原创 SQL基础学习6

各种各样的函数函数的种类:在SQL中函数大致可分为以下几种:算术函数、字符串函数、日期函数、转换函数、聚合函数算术函数:

2015-11-08 17:15:03 287

原创 SQL基础学习5

视图视图与表:从SQL角度来看视图就是一张表视图与表的唯一区别:是否保存了实际的数据。数据库中的数据实际上会被保存到计算机的存储设备中,但使用视图时并不会将数据保存到存储设备之中,也不会将数据保存到其他任何地方。实际上是他保存的是SELECT语句。表中存储的是实际数据,而视图中保存的是从表中取出数据所使用的SELECT语句。视图的优点:1.无需保存数据,可以节省存储设备的容量;2.

2015-11-08 10:58:04 266

原创 SQL基础学习4

数据的插入(INSERT语句的使用方法)

2015-11-07 11:41:06 361

原创 SQL基础学习3

对表进行聚合查询聚合函数:通过SQL对数据进行某种操作或计算是需要使用的函数,常见的聚合函数(或称为合计函数)如下:COUNT:计算表中的记录数(行数);SUM:计算表中数值列的数据合计值;(只适用于数值类型)AVG:计算表中数值列的数据平均值;(只适用于数值类型)MAX:求出表中任意列中数据的最大值;(适用于所有数据类型)MIN:求出表中任意列中数据的最小值;(适用于所有

2015-11-06 22:45:44 516

原创 SQL基础学习2

SELECT语句基础列的查询:通过SELECT 语句查询并选取出必要数据的过程称为匹配查询或查询。--SELECT的基本语句SELECT 列名1,...FROM 表名;解释1:SELECT子句中列举了希望从表中查询出的列的名称,其顺序可以任意指定,多个列名直接用逗号分隔排列,查询结果中列的顺序与其子句顺序相同。当要查询全部列时,可以用星号(*)表示。使用星号时,就无法设定列的显示顺序

2015-11-06 15:58:49 345

原创 SQL基础学习1

数据库(Database,DB)的定义:将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合;数据库管理系统(Database Management System,DBMS)的定义:用来管理数据库的计算机系统;关系数据库管理系统(Relational Database Management System,RDBMS)的定义:采用行列二维表结构来管理数据,同时使用专门的结构化查

2015-11-06 10:38:13 405

原创 联迪商用面试后记

前几天,和小伙伴们结群去参加了联迪商用的宣讲会。话说,宣讲会是从下午4:30开始的,在宣讲会结束后休息十分钟就进行笔试。记得开始笔试的时候大概已经5:40了,这个时候饿得有点发冷了,没办法,还是硬着头皮参加考试。试卷的难度是不很大,主要是考些C基础和一些网络通信方面的,比如变量的命名规则、OSI模型等。做了大概一个小時就交卷出来吃饭了,感觉考的还可以吧。第二天,在进行其它场次的笔试时候,手机震

2015-10-18 15:53:37 2629

原创 星网锐捷后记

星网锐捷,是我第一家真正意义上拿到offer。一方面感觉很棒,另一方面又觉得很不爽。在十月份的某一天,迎来了星网锐捷的校园宣讲会。感觉它还是不错的,于是就和小伙伴们结群一起去了。宣讲会上的宣讲视频还是不错的,但一说到薪资,心里拔凉拔凉的,但心里一想,先过了笔试再说。说起笔试比较不舒服的就是考试的地点,考题上就是编程题难度比较大。第一题是使用递归的方法实现字符串反转。看到此题,瞬间有点凌乱了

2015-10-18 15:52:28 2009

原创 百度面试杂感

在9月21号参加了百度深圳站的“软件开发工程师”在线测试,并意外的在第二天晚上九点多收到了面试的电话通知。之所以意外是因为当时在笔试的时候有一设计题,占了30分本人不会做完全给放空了。当时心底非常高兴,但对于HR通知说要23号面试有点抱怨的情绪。因为我身在厦门,却要在23号下午三点之前赶到百度的深圳国际大厦,时间很赶。于是就想问能不能改电话面试,HR说没有,并说本人笔试分数不高,面试过的几率很小,

2015-09-24 21:55:21 914

原创 关于鼠标在VirtualBOX与原始系统中自由切换的实现

在VirtualBox在安装好centos7后发现鼠标不能自由地在虚拟机与外在系统中切换,每次要回到外部系统总数要按“CTRL+ALT+DELETE”键不胜麻烦。想着能实现自由切换的话效率会提升好的,心情也会很好。图1首先,内窗口比外窗口大(如图1),导致了要看到桌面下方的内容要用鼠标拉动右边(或下边)的滚动条,很是不方便。于是进行了如下:选择“视图”->"切换到自动缩放模式"

2015-09-05 15:05:21 40894

原创 网络基础知识

何为网络网络:一群(两台或上千台)通过一定形式连接起来的电脑。网络按范围分为:局域网(LAN,Local Area Network)、广域网(WAN,Wide Area Network)、城域网(MAN,Metropolitan Area Network)及市域网(CAN,Citywide Area Network)Internet、Intranet、Extranet 的区别:(1)I

2015-08-31 15:04:04 624

原创 Linux系统的简易安装

为了学习Linux系统又不放弃原有的系统,需要安装一个虚拟机,将Linux系统安装在其上。对于虚拟机的选择,首先想到了VMware WorkStation(以下简写为VMW)但不知出现了什么问题,换了好几个资源下载VMW安装包,最终都提示安装有问题。为了顺利学习,得找一下替代品了,搜索了一下,发现了VMware Player(以下简写为VMP),虽然功能比VMW少了很多,但也更加的简洁,关键还

2015-08-25 11:00:25 2698

原创 C语言陷阱与缺陷(7)

可移植性1.应对C语言标准变更2.标识符名称的限制       能区别多少个字符不同的外部名称,有无区分大小写。3.整数的大小       C提供了3种不同长度的整数:short、int、long,它们的长度是非递减的。4.字符是有符号整数还是无符号整数       在实际许可的情况下,尽量使用无符号类型5.移位运算符       有符号数的右移,可以用0填充空

2015-08-03 09:02:16 433

原创 C语言缺陷与陷阱(6)

预处理器宏:一种对组成C程序的字符进行变换的方式,而并不作用于程序中的对象。1.不能忽视宏定义中的空格#define f (x) ((x)-1)被翻译为:f 代表(x)((x)-1)2.宏并不是函数       宏定义中最好把每个参数都用括号括起来,整个结果表达式也应该用括号括起来。       要确保宏中的参数没有副作用(如,参数被求值两次),尽量不在宏中使用递增之类(如

2015-08-03 09:01:59 557

原创 C语言陷阱与缺陷(5)

库函数1.返回整数的getchar函数记住:getchar的返回类型为int 而不是char.2.更新顺序文件       一个文件输入操作不能随后紧跟一个文件输出操作,反之亦然。       若要同时进行文件输入、输出操作,必须在其中插入fseek函数的调用(用于改变文件的状态,使其能正常的读取)。3.缓冲输出与内存分配       通过使用setbuf(stdout

2015-07-29 11:12:40 372

原创 C语言陷阱与缺陷(4)

连接(将C程序的若干部分分别进行编译,最后整合起来)1.连接器连接器通常把目标模块看成是由一组外部对象组成的。其输入为一组目标模块和库文件,输出为一个载入模块。2.声明与定义声明:为变量分配地址,而不分配存储空间;定义:为变量分配地址和存储空间。在变量前加extern表示对变量的引用变量可进行多次声明,但只能定义一次。3.命名冲突与static修饰符    

2015-07-28 21:14:00 464

原创 C语言缺陷与陷阱(3)

语义分析                                                                                        (程序员本意是希望表示某种事物,而实际表示的却是另外一种事物)1.     指针和数组数组值必须注意的两点:(1)C语言只有一维数组,且数组大小必须在编译期作为一个常数确定下来;(2)对一个数组只能进行:

2015-07-26 08:57:05 2092

7zDLL动态库

7zDLL,配合SevenZip.dll使用的库

2016-08-10

HEVC帧间提案

HEVC帧间编码常用提案,包含ESD、AMP、 ECU、 CFM、FEN等。

2014-11-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除