左雪菲的专栏

欢迎访问我的个人网站:http://www.hootina.org

git配置ssh key并从github.com拉取repos

一、配置ssh key1. 进入当前用户目录cd ~2. 生成ssh keyssh-keygen -t rsa -C "ABC@qq.com"ABC@qq.com账号必须是你登录github的账户名中间如果提示文件已经存在可以选择覆盖,提示输入密码,可以直接按Enter跳过。$...

2017-05-25 16:57:07

阅读数:1381

评论数:0

TeamTalk源码分析(十) —— 开放一个TeamTalk测试服务器地址和几个测试账号

由于TeamTalk是用于企业内部的即时通讯软件,一般客户端并不提供账号注册功能。如果你仅对TeamTalk的客户端感兴趣,你可以仅仅研究pc端和移动端代码。官方的测试服务器地址已经失效,所以我已经部署了一套TeamTalk服务器,并建立了几个测试账户可以供你使用:tangsengsunwukon...

2017-05-25 12:08:05

阅读数:3074

评论数:8

TeamTalk源码分析(九) —— 服务器端route_server源码分析

route_server的作用主要是用户不同msg_server之间消息路由,其框架部分和前面的服务类似,没有什么好说的。我们这里重点介绍下它的业务代码,也就是其路由细节:void CRouteConn::HandlePdu(CImPdu* pPdu) { switch (pPdu-&a...

2017-05-20 15:49:18

阅读数:1975

评论数:5

TeamTalk源码分析(八) —— 服务器端file_server源码分析

         这篇文章我们来介绍file_server服务的功能和源码实现。TeamTalk支持离线在线文件和离线文件两种传送文件的方式。单纯地研究file_server的程序结构没多大意义,因为其程序结构和其他几个服务结构基本上一模一样,前面几篇文章已经介绍过了。 我们研究teamtalk的...

2017-05-20 15:04:38

阅读数:1943

评论数:1

TeamTalk源码分析(七) —— 服务器端msf源码分析

这篇文章是对TeamTalk服务程序msfs的源码和架构设计分析。msfs作用是用来接受teamtalk聊天中产生的聊天图片的上传和下载。还是老规矩,把该服务在整个架构中的位置图贴一下吧。可以看到,msfs仅被客户端连接,客户端以http的方式来上传和下载聊天图片。可能很多同学对http协议不是很...

2017-05-19 18:13:55

阅读数:4517

评论数:8

WinInet使用详解

WinInet是windows平台对socket进行一层封装,用来直接处理http/ftp/Gopher协议的一套windows API。我第一次接触这个是在一个客户那里,当时因为客户都需要使用http代理才能浏览网页,所以折腾了一天,才基本掌握。而时隔没多久又忘记的差不多了,这个流程就像正则表达...

2017-05-19 10:35:16

阅读数:1451

评论数:0

TeamTalk源码分析(六) —— 服务器端login_server源码分析

login_server从严格意义上来说,是一个登录分流器,所以名字起的有点名不符实。该服务根据已知的msg_server上的在线用户数量来返回告诉一个即将登录的用户登录哪个msg_server比较合适。关于其程序框架的非业务代码我们已经在前面的两篇文章《TeamTalk源码分析(四) —— 服务...

2017-05-18 16:42:27

阅读数:2291

评论数:2

TeamTalk源码分析(五) —— 服务器端msg_server源码分析

在分析msg_server的源码之前,我们先简单地回顾一下msg_server在整个服务器系统中的位置和作用:各个服务程序的作用描述如下:LoginServer (C++): 负载均衡服务器,分配一个负载小的MsgServer给客户端使用MsgServer (C++): 消息服务器,提供客户端大部...

2017-05-18 15:21:06

阅读数:2641

评论数:2

TeamTalk源码分析(四) —— 服务器端db_proxy_server源码分析

从这篇文章开始,我将详细地分析TeamTalk服务器端每一个服务的源码和架构设计。这篇从db_proxy_server开始:db_proxy_server是TeamTalk服务器端最后端的程序,它连接着关系型数据库mysql和nosql内存数据库redis。其位置在整个服务架构中如图所示:我们从d...

2017-05-17 18:07:32

阅读数:3141

评论数:3

将char* 赋值给std::string的一些陷阱

这段时间,总是要使用char或者char* 赋值给std::string,踩了不少坑。于是写了个测试代码: #include #include using namespace std; int main(int argc, char* argv[]) { string str1;...

2017-05-12 16:30:56

阅读数:3885

评论数:0

TeamTalk源码分析(三) —— 服务器端的程序架构介绍

通过上一节的编译与部署,我们会得到TeamTalk服务器端以下部署程序:db_proxy_serverfile_serverhttp_msg_serverlogin_servermsfsmsg_serverpush_serverrouter_server这些服务构成的拓扑图如下:各个服务程序的作用...

2017-05-10 13:30:10

阅读数:4166

评论数:3

TeamTalk源码分析(二) —— 服务器端的程序的编译与部署

      写在前面的话,如果您在部署teamtalk过程中遇到困难,可以关注我的微信公众号『easyserverdev』,在微信公众号中回复『teamtalk部署求助』,我将与你取得联系并协助您解决。或者您对高性能服务器开发感兴趣,您也可以关注我的微信公众号获得技术支持。      这篇我们来介...

2017-05-05 16:14:20

阅读数:4815

评论数:3

TeamTalk源码分析(一)—— TeamTalk介绍

       TeamTalk是蘑菇街开源的一款企业内部用的即时通讯软件(Enterprise IM),类似腾讯的RTX。网上也有很多的介绍,我这里也有写几遍关于这款产品的“流水账”,一方面对自己这段时间的阅读其代码做个总结,尽量做个既能宏观上从全局来介绍,又不缺少很多有价值的微观细节,另一方面如...

2017-05-05 14:58:30

阅读数:6072

评论数:3

mysql INSERT ... ON DUPLICATE KEY UPDATE语句

网上关于ON DUPLICATE KEY UPDATE大多数文章都是同一篇文章转来转去,首先这个语法的目的是为了解决重复性,当数据库中存在某个记录时,执行这条语句会更新它,而不存在这条记录时,会插入它。 相当于 先判断一条记录是否存在,存在则update,否则insert。其语法是: INSER...

2017-05-02 17:31:04

阅读数:2649

评论数:0

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