郑亚帅

热爱编程,享受生活!

一个并发10k的简易群聊天室(使用epoll)

local.h 点击(此处)折叠或打开 #include sys/socket.h> #include sys/epoll.h> #include netinet/in.h> #include arpa/inet.h>...

2017-01-20 19:09:18

阅读数 475

评论数 0

Linux epoll模型

定义:   epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开发者每次等待事件之前都必须重新准备...

2017-01-20 16:56:49

阅读数 113

评论数 0

Linux网络编程16——I/O复用之epoll详解

一、epoll概述 epoll 是在 2.6 内核中提出的,是之前的 select() 和 poll() 的增强版本。相对于 select() 和 poll() 来说,epoll 更加灵活,没有描述符限制。epoll 使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的...

2017-01-14 17:21:24

阅读数 184

评论数 0

Linux网络编程15——I/O复用之poll详解

一、回顾前面的select select优点: 目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点 select缺点: 1.每次调用 select(),都需要把 fd 集合从用户态拷贝到内核态,这个开销在 fd 很多时会很大,同时每次调用 select...

2017-01-14 17:19:55

阅读数 198

评论数 0

Linux网络编程14——I/O复用之select详解

一、I/O复用概述 I/O复用概念: 解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调 I/O复用使用的场合: 1.当客户处理多个描述符(通常是交互式输入、网络套接字)时,必须使用I/O复用。 2.t...

2017-01-14 14:30:14

阅读数 160

评论数 0

Linux网络编程13——connect()、listen()和accept()三者之间的关系

一、tcp编程的核心步骤 二、connect()函数分析 对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是这个函数完成的,这个函数的作用仅仅是通知 Linux 内核,让...

2017-01-14 14:29:23

阅读数 167

评论数 0

Linux网络编程11——tcp、udp迭代服务器

一、迭代与并发服务器概述 服务器设计技术有很多,按使用的协议来分有 TCP 服务器和 UDP 服务器,按处理方式来分有迭代服务器(循环服务器)和并发服务器。 在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要...

2017-01-14 12:12:04

阅读数 192

评论数 0

Linux网络编程10——TCP编程之服务器

一、做为 TCP 服务器需要具备的条件呢? 1.具备一个可以确知的地址( bind() ):相当于我们要明确知道移动客服的号码,才能给他们电话; 2.让操作系统知道是一个服务器,而不是客户端( listen() ):相当于移动的客服,他们主要的职责是被动接听用户电话,而不是主动打电...

2017-01-14 12:10:56

阅读数 126

评论数 0

Linux网络编程09——TCP编程之客户端

一、TCP概述 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP 具有以下特点: 1)电话系统服务模式的抽象 2)每一次完整的数据传输都要经过建立连接、使用连接、...

2017-01-14 12:09:29

阅读数 99

评论数 0

Linux网络编程08——多播

转自:http://blog.csdn.net/tennysonsky/article/details/44493407 一、概述 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主...

2017-01-14 12:02:24

阅读数 119

评论数 0

Linux网络编程07——广播

概述 在生活中广播无处不在,像平时在大街上卖物品的商人,在进行推广产品的时候往往都是使用一个喇叭来进行吆喝:“十块钱买不了吃亏,十块钱买不了上当,走过路过千万不要错过”,这就是广播。 那么在网络中的广播又是什么样子的呢? 网络上的广播指:由一台主机向该...

2017-01-14 11:52:02

阅读数 125

评论数 0

Linux网络编程06——UDP协议编程

一、概述 UDP 是 User Datagram Protocol 的简称, 中文名是用户数据报协议,是一个简单的面向数据报的运输层协议,在网络中用于处理数据包,是一种无连接的协议。UDP 不提供可靠性的传输,它只是把应用程序传给 IP 层的数据报发送出去,但是并不能保证它们能到达目...

2017-01-14 11:50:36

阅读数 91

评论数 0

Linux网络编程05——C/S与B/S架构的区别

一、概述 在这个信息急剧膨胀的社会,我们不得不说人类正进入一个崭新的时代,那就是信息时代。信息时代的一个主要而显著的特征就是计算机网络的应用。计算机网络从最初的集中式计算,经过了Client/Server阶段(有两层C/S和三层C/S),已发展到目前最流行的 Browser/Serv...

2017-01-14 11:49:45

阅读数 199

评论数 0

Linux网络编程12——浅谈 TCP 三次握手和四次挥手

一、tcp协议格式 二、三次握手 在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手建立一个连接。   第一次握手:建立连接时,客户端发送 syn 包(tcp协议中syn位置1,序号为J)到服务器,并进入 SYN_SEND 状态,...

2017-01-14 11:45:33

阅读数 133

评论数 0

Linux网络编程04——套接字

一、套接字概述 套接字是一种通信机制(通信的两方的一种约定),凭借这种机制,不同主机之间的进程可以进行通信。我们可以用套接字中的相关函数来完成通信过程。 套接字的特性有三个属性确定,它们是:域(domain),类型(type),和协议(protocol)。 ...

2017-01-13 18:03:52

阅读数 184

评论数 0

Linux网络编程03——字节序和地址转换

一、字节序的概念 字节序是指多字节数据的存储顺序,在设计计算机系统的时候,有两种处理内存中数据的方法:大端格式、小端格式。 小端格式(Little-Endian):将低位字节数据存储在低地址。 大端格式(Big-Endian):将高位字节数据存储在低地址。...

2017-01-13 18:02:29

阅读数 173

评论数 0

Linux网络编程02——无连接和面向连接的区别

网络编程中最基本的概念就是面向连接(connection-oriented)和无连接(connectionless)协议。尽管本质上来说,两者之间的区别并不难理解,但对那些刚刚开始进行网络编程的人来说,却是个很容易混淆的问题。这个问题与上下文有些关联:很显然,如果两台计算机要进行通信,就必须以某种...

2017-01-13 18:01:13

阅读数 135

评论数 0

Linux网络编程01——网络协议入门

为了使各种不同的计算机之间可以互联,ARPANet指定了一套计算机通信协议,即TCP/IP协议( 族 ),它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了网络的原理。 因为这些协议实在太复杂、太庞大,这里只是整理一个简洁的框架,帮助大家从总体上把握它们。 ...

2017-01-13 18:00:21

阅读数 151

评论数 0

视频带宽计算公式(码流_分辨率_帧率)

码流   码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是Kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内取样率越大,数据流,精度就...

2017-01-12 19:07:42

阅读数 1967

评论数 0

码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清

1, 码流 /码率 / 比特率 / 帧速率 / 分辨率   码流 / 码率   码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,...

2017-01-12 19:06:25

阅读数 145

评论数 0

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