首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

开源软件实践之linux高性能服务器编程框架和选型

很多人学习编程技术一般都通过一本编程语言的入门书籍,然后尝试做一些例子和小项目。但是这些都不能让我们深入的学习很多的编程技巧和高深技术,当然这个时候很多有经验的学习人员就会告诉大家,找一个好的开源软件理解它的设计与实现原理,阅读开源项目的源代码,都知道源码之前了无秘密。我也承认读源码能够快速提高我们的编程能力和编程思维,我也经常研究很多项目的源代码,有些是工作需要,有些是兴趣。但是我今天想说的都不是这些,我想说的是更高一层的学习方案,就是通过自己的实践实现一个开源软件,也许这个开源软件没有任何人使用,但

05

【漫画】TCP连接为什么是三次握手,而不是两次握手,也不是四次握手?

乔哥:你说“喂喂喂,能听到我说话吗?”,是第一次握手,也就是说小萌你的发送消息的能力没有问题,然后我回了你一句“小萌,我可以听到你说话,你能听到我说话吗?”这是第二次握手,我回了你一句,说明了我可以听到你说话(说明了我具有接受消息的能力),我对你说了“你能听到我说话吗”也说明了我这里也有可以发送消息的能力。到第二次握手结束,说明了我具有发送消息和接受消息的能力,小萌你具有发送消息的能力。然后你说“乔哥,我听到你说话了”,这是第三次握手,你听到我说话,也就是说明小萌你的接受消息的能力没有问题。这样就可以进行通话了(建立了TCP连接)

02

【漫画】TCP连接为什么是三次握手,而不是两次握手,也不是四次握手?

乔哥:你说“喂喂喂,能听到我说话吗?”,是第一次握手,也就是说小萌你的发送消息的能力没有问题,然后我回了你一句“小萌,我可以听到你说话,你能听到我说话吗?”这是第二次握手,我回了你一句,说明了我可以听到你说话(说明了我具有接受消息的能力),我对你说了“你能听到我说话吗”也说明了我这里也有可以发送消息的能力。到第二次握手结束,说明了我具有发送消息和接受消息的能力,小萌你具有发送消息的能力。然后你说“乔哥,我听到你说话了”,这是第三次握手,你听到我说话,也就是说明小萌你的接受消息的能力没有问题。这样就可以进行通话了(建立了TCP连接)

01

C++ 高性能服务器网络框架设计细节

这篇文章我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序。需要注意的是一般大型服务器,其复杂程度在于其业务,而不是在于其代码工程的基本框架。大型服务器一般有多个服务组成,可能会支持 CDN,或者支持所谓的“分布式”等,这篇文章不会介绍这些东西,因为不管结构多么复杂的服务器,都是由单个服务器组成的。所以这篇文章的侧重点是讨论单个服务程序的结构,而且这里的结构指的也是单个服务器的网络通信层结构,如果你能真正地理解了我所说的,那么在这个基础的结构上面开展任何业务都是可以的,也可以将这种结构扩展成复杂的多个服务器组,例如“分布式”服务。文中的代码示例虽然是以 C++ 为例,但同样适合Java(我本人也是Java开发者),原理都是一样的,只不过Java可能在基本的操作系统网络通信API的基础上用虚拟机包裹了一层接口而已(Java甚至可能基于一些常用的网络通信框架思想提供了一些现成的 API,例如 NIO )。有鉴于此,这篇文章不讨论那些大而空、泛泛而谈的技术术语,而是讲的是实实在在的能指导读者在实际工作中实践的编码方案或优化已有编码的方法。另外这里讨论的技术同时涉及 Windows 和 Linux 两个平台。

06
领券