左雪菲的专栏

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

排序:
默认
按更新时间
按访问量

服务器端编程心得(七)——开源一款即时通讯软件的源码

        在我的《服务器端编程心得》这个系列的第一篇至第六篇都是讲了一些零散的不成体系的网络编程细节。今天,在这篇文章中,我将介绍一款我自主开发的即时通讯软件flamingo(中文:火烈鸟),并开源其服务器和pc客户端代码。以此来对前几篇文章中说到的理论进行实践。        代码在gi...

2017-04-06 22:57:01

阅读数:20015

评论数:10

redis网络通信模块源码分析

redis网络通信模块源码分析 作者 张小方,文章版权所有,转载请保留文章版权信息并注明出处。 导读 时下的业界,相对于传统的关系型数据库,以key-value思想实现的nosql内存数据库也是非常流行,而提到内存数据库,很多人第一反应就是redis。确实,redis以其高效的性能和优雅的实现成为...

2018-10-12 10:52:43

阅读数:105

评论数:0

『腾讯后台开发』实习生技能要求

一、操作系统方面 1. 多线程相关与线程之间同步技术 熟练使用(但不局限于)以下linux API linux下的线程创建、等待、获取线程id int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *...

2018-08-20 23:47:39

阅读数:916

评论数:0

从零学习游戏服务器开发(四)LogServer源码探究

这是从零学习开源项目的第四篇,上一篇是《从零学习开源项目系列(三) CSBattleMgr服务源码研究》,这篇文章我们一起来学习LogServer,中文意思可能是“日志服务器”。那么这个日志服务器到底做了哪些工作呢?我们在Visual Studio中将LogServer设置为启动项,然后按F5将L...

2018-05-23 10:52:03

阅读数:746

评论数:1

从零实现一款12306抢票软件

写在前面的话每年逢年过节,一票难求读者肯定不陌生。这篇文章,我们带领读者从零实现一款12306刷票软件,其核心原理还是通过发送http请求模拟登录12306网站的购票的过程,最后买到票。关于http请求的格式和如何组装http数据包给服务器发送请求,我们在上一篇文章《从零实现一个http服务器》中...

2018-05-21 12:10:03

阅读数:1250

评论数:0

从零实现一个http服务器

我始终觉得,天生的出身很重要,但后天的努力更加重要,所以如今的很多“科班”往往不如后天努力的“非科班”。所以,我们需要重新给“专业”和“专家”下一个定义:所谓专业,就是别人搞你不搞,这就是你的“专业”;你和别人同时搞,你比别人搞的好,就是“专家”。说到http协议和http请求,很多人都知道,但是...

2018-05-18 12:44:42

阅读数:1328

评论数:2

从零学习游戏服务器开发(三) CSBattleMgr服务源码研究

如上图所示,这篇文章我们将介绍CSBattleMgr的情况,但是我们不会去研究这个服务器的特别细节的东西(这些细节我们将在后面的文章中介绍)。阅读一个未知的项目源码如果我们开始就纠结于各种细节,那么我们最终会陷入“横看成岭侧成峰,远近高低各不同”的尴尬境界,浪费时间不说,可能收获也是事倍功半。所以...

2018-05-17 10:44:07

阅读数:781

评论数:5

从零学习游戏服务器开发(二) 最后一战概况

这份代码我也是无意中来自一个朋友,据他说也是来源于互联网,服务器端代码原来是linux版本的,但被厉害的大神修改成可以在Windows上运行。(如果不小心侵犯了您的版权,请联系我删除)。好在,这份代码中使用的大多数方法和接口都是可以跨Windows和linux两个平台的,所以linux开发下的朋友...

2018-05-15 10:44:43

阅读数:898

评论数:0

从零学习游戏服务器开发(一) 从一款多人联机实时对战游戏开始

写在前面的话      经常有学生或者初学者问我如何去阅读和学习一个开源软件的代码,也有不少朋友在工作岗位时面对前同事留下的项目,由于文档不完善、代码注释少、工程数量大,而无从下手。本文将来通过一个多人联机实时对战游戏——最后一战,来解答以上问题。      其实,我以上问题在我是一个学生时,我也...

2018-05-15 10:43:55

阅读数:1048

评论数:0

理解Java Integer的缓存策略

本文将介绍 Java 中 Integer 缓存的相关知识。这是 Java 5 中引入的一个有助于节省内存、提高性能的特性。首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为。接着我们将学习这种实现的原因和目的。你可以先猜猜下面 Java 程序的输出结果。很明显,这里有一...

2018-04-26 16:34:17

阅读数:273

评论数:0

将NULL指针赋值给std::string变量导致程序崩溃

如题:如上图,但是我们还会经常写这样的代码,例如我的flamingo中有代码如下(已经修正):位于queryresult.cpp中如果fields[i].name为NULL的话,程序将崩溃。备忘一下,以后将char*类型赋值给std::string类型一定记得检测一下是否为空指针。...

2018-04-26 14:44:35

阅读数:355

评论数:0

用Android Studio进行NDK编程入门实例

参考了网上各种教程,跌跌撞撞最终才把流程走通,特此记录一下:有必要先交代下开发环境:操作系统:Win7Android Studio 3.0.1gradle 3.0.1首先,新建一个Android项目,然后在MainActivity的布局文件activity_main.xml文件中新增一个测试按钮,...

2018-04-17 20:04:15

阅读数:454

评论数:2

解决无法链接GetFileVersionInfoSize、GetFileVersionInfo或VerQueryValue

xsvrDlg.obj : error LNK2019: unresolved external symbol _GetFileVersionInfoSizeW@8 referenced in function "public: int __thiscall CXsvrDlg::...

2018-04-10 13:33:37

阅读数:248

评论数:0

这些年一直记不住的 Java I/O

阅读目录参考资料前言从对立到统一,字节流和字符流从抽象到具体,数据的来源和目的从简单到丰富,使用 Decorator 模式扩展功能Java 7 中引入的 NIO.2NIO.2 中的异步 I/O总结回到顶部参考资料  该文中的内容来源于 Oracle 的官方文档。Oracle 在 Java 方面的文...

2018-04-02 22:27:36

阅读数:347

评论数:0

Java String转byte数据长度不对

今天,在用Java设计一个网络通信协议时,将一个String通过其getBytes()方法转换成byte[]时,其长度不对,记录一下。byte[] byte1 = new byte[50]; String str = new String(byte, 0, 50); //此时byte1.len...

2018-03-18 13:39:20

阅读数:565

评论数:2

2018年年初的面试经验谈

说下我的面试经验吧,都是亲身经历,不喜勿喷:我去年12月份从上一家公司离职,一直到今年3月份,基本上都在面试中度过来的。先交代下背景:坐标上海,做技术开发,我本人面试的职位是linux服务器开发,最倾向的职位是服务器开发主程或技术经理。我本人也是上几家公司的面试官,因为接下来几年面临着成家养小孩,...

2018-03-15 13:57:46

阅读数:3696

评论数:4

金山卫士开源代码

自从金山卫士的代码部分开源以来,基于它出现了各种软件,有侧重界面库的,如SOUI,有侧重电脑安全管理的,下面是我维护的版本的部分截图:主界面垃圾清理ARP防火墙隐私保护器对于广大开发者尤其是广大做Windows安全方面的朋友来说,这套代码具有很大的借鉴意义,至少我们可以知道那些所谓的“电脑管家”到...

2018-03-14 22:10:49

阅读数:1432

评论数:1

Gh0st源码分析(一)——Ghost简介和编译

     相信很多人都听说过Gh0st这款软件,它和灰鸽子等软件一样是十多年前安全方面的代表。本人有幸拿到一款Gh0st软件的源码,经我的改造,修正大量bug,终于让这款软件能在现在的Windows操作系统上正常运行。虽然,很多做法在新的操作系统中已经过时或者没有必要,但是其软件的架构原理、过杀毒...

2018-02-15 16:20:30

阅读数:1412

评论数:2

git合并远程仓库上的提交记录

有时候,我们用git提交代码时,因为我们的疏忽,会导致同一个问题,修改多次,因为反复提交多次,最终稳定下来,我们想把git上这些不成熟的提交记录合成一个终极记录。例如:git上依次有如下提交(按提交时间从新到旧):提交记录k提交记录m提交记录n4提交记录n3提交记录n2提交记录n1提交记录p提交记...

2018-01-31 17:59:30

阅读数:1517

评论数:0

centos7 cannot find -lstdc++ 错误

解决CentOS 7 中,make源文件时出现 /usr/bin/ld: cannot find -lstdc++ 错误在CentOS 7中,使用static方法编译,需要安装static version of glibc-static libstdc++-static。使用如下命令安装yum i...

2018-01-13 20:43:06

阅读数:1352

评论数:0

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