网络编程
文章平均质量分 84
Rayen0715
这个作者很懒,什么都没留下…
展开
-
我读过的最好的epoll讲解
本文转自:http://my.oschina.net/dclink/blog/287198首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们转载 2016-07-16 16:49:56 · 378 阅读 · 0 评论 -
C1000K,构建百万并发级服务器
著名的 C10K 问题提出的时候, 正是 2001 年, 到如今 12 年后的 2013 年, C10K 已经不是问题了, 任何一个普通的程序员, 都能利用手边的语言和库, 轻松地写出 C10K 的服务器. 这既得益于软件的进步, 也得益于硬件性能的提高.现在, 该是考虑 C1000K, 也就是百万连接的问题的时候了. 像 Twitter, weibo, Facebook 这些网站, 它们转载 2016-12-08 13:55:06 · 4029 阅读 · 0 评论 -
网络编程----IO复用之select模型
前一篇文章提到了,多线程/多进程虽然能够在一定程度上解决并发,但是由于进程/线程的切换消耗系统资源,多余并发量比较大的服务无法支持,因此为了解决大并发场景,需要一种能够支持更多并发的方法----IO复用, 与多线程/进程相比,IO复用最大的优点是避免了线程进程切换时产生的系统开销,内核不用创建线程也不用再维护这些线程了,这样就避免了很多不必要的开销。本文介绍一种IO复用模型,select模型,原创 2017-04-06 22:35:03 · 3252 阅读 · 1 评论 -
网络编程三---多线程/进程解决并发问题
前文列出的代码给大家展示了一个最简单的网络程序,但正如文章末尾所提的,这个最简单的网络程序最大的缺点是服务端一次只能服务一个客户端,就比如说你去吃饭,饭店只有一个服务员, 而且服务员在客户离开之前只能为一个客户服务,也就是说你只能等待你前面的客户吃好饭离开了,然后你才能进去吃饭,而在你吃饭的时候时候,你后面来的人都得等你吃完饭才能轮到你后面一个人吃饭。这种模式的缺点很明显,因为在你进去点好菜到买单原创 2017-03-30 00:08:11 · 4619 阅读 · 1 评论 -
网络编程---IO复用之epoll模型
前文已经介绍了IO复用的select模型,并列举了在并发数量比较大的时候select的缺点,本文将介绍另外一种IO模型,epoll模型,该模型能够高效解决数百万计的并发量,因此在大规模的网络编程中应用很广,在大规模网络编程中Linux中选择epoll,windows下选择IOCP。epoll的相关系统调用只有三个,使用上比较简单,但是要想能够很好的使用epoll需要如何了解epoll各种模式比原创 2017-04-09 12:25:03 · 829 阅读 · 0 评论 -
网络编程----libevent改造Echo服务器
前文已经介绍了epoll这IO模型,能够处理数百万的并发量,但是epoll只适用于Linux平台,如果想要编写高并发可移植的网络应用程序我们该怎么办呢?答案是用开源的跨平台高性能的网络库Libevent..libevent 是一个高性能轻量级的跨平台网络库,事件驱动,适用于多个平台,Linux,Windows,Mac os等,支持多种网络IO复用,如常用的select,epoll,pll,de原创 2017-04-09 17:05:18 · 729 阅读 · 0 评论 -
网络编程系列一网络编程中的基本概念
序言本次文章是一个序列,是对工作以及学习中关于网络编程的一个总结,本序列将从一个最简单的网络程序开始介绍当前网络编程的递进过程,有兴趣的朋友可以去阅读关于C10K问题的文档。在开始代码介绍之前,本文先介绍一些基本的网络编程的基本概念本文不会对网络编程中的一些函数作介绍,如socket(),accpet()等。相信有兴趣浏览该文章的朋友应该对这些函数的使用已经有了基本的了解,要是不了解的话可以自原创 2017-03-25 22:41:18 · 512 阅读 · 0 评论 -
网络编程系列二--最简单的网络程序
这篇文章介绍一个最简单的网络程序,C/S模式,一个服务端进程只能为一个客户端进程服务。最早的计算机是为了应用大规模的计算而研发的,随着http协议以及网络技术的发展,网络通信在计算机的普及中起了非常大的作用,下面就列出了一个最简单的ECHO服务器的程序。#include #include #include #include #include #include int main()原创 2017-03-26 12:45:47 · 1231 阅读 · 0 评论