Linux网络编程
文章平均质量分 72
愤斗的小鸡
这个作者很懒,什么都没留下…
展开
-
【Linux编程】零拷贝之splice( )函数和tee( )函数
关于零拷贝技术的相关文章,请参考:【Linux编程】大冒险之零拷贝技术探究splice( )函数在两个文件描述符之间移动数据,同sendfile( )函数一样,也是零拷贝。 函数原型:#include <fcntl.h> ssize_t splice(int fdin, loff_t *offin, int fdout, loff_t *offout, size_t len, unsigned i原创 2015-12-10 00:18:28 · 5425 阅读 · 2 评论 -
【Linux编程】IO复用之epoll详解
epoll是Linux特有的IO复用函数,功能上与select和poll相同,但在实现和使用上又有很大的差异。 理解了select和poll可以更轻松的学会epoll,连接如下: 请点击—>关于select的详解 请点击—>关于poll的详解epoll系列系统调用 epoll_create函数 不同于select和poll,epoll使用三个函数来完成任务,并且把用户关心的文件描述符上的事件放原创 2015-12-07 16:35:31 · 731 阅读 · 0 评论 -
【Linux编程】用c语言判断大小端
大端:高位字节存在内存底地址,低位字节存在内存高地址。 小端:高位字节存在内存高地址,低位字节存在内存底地址。 例如:一个十六进制0x0102,若高字节0x01存在内存底地址并且底字节0x02存在内存高地址,则此机器为大端。反之为小端。 #include int main(){ short i = 0x0102;//十六进制,高字节为1,底字节为2。 char t[原创 2015-11-25 20:56:16 · 550 阅读 · 0 评论 -
【Linux编程】用select处理普通数据和带外数据
传输层的TCP协议有带外数据的概念,带外数据又称为紧急数据,它比普通数据有更高的优先级,一般会立即发送,而不会排队等待。 在TCP协议头部结构中有URG标志位和16位的紧急指针,若URG标志位被设置,表示紧急指针有效,此时紧急指针将指向紧急数据的下一个字节。 带外数据只有一个字节大小,因为服务器将读取到的带外数据存入一个特殊的缓冲区,这个缓冲区只有一个字节的大小,并且带外数据会将TCP字节流截原创 2015-12-06 21:07:44 · 1378 阅读 · 0 评论 -
【IO模型探讨】阻塞,非阻塞,同步,异步
以前看这部分内容的时候没仔细理清楚,只知其一,不知其二。最近在学习高性能服务器编程时,又碰到同步和异步的问题,所以看了一些资料学习了一下,做一个总结。 IO模型一共有五种: 阻塞IO 非阻塞IO IO复用 信号驱动IO 异步IO 为了理清楚这五种IO模型的工作原理,用一个read函数来做假设,一次read函数调用会经历两个阶段: 1、等待内核缓冲原创 2015-12-05 22:10:09 · 472 阅读 · 0 评论 -
【Linux编程】IO复用之poll详解
poll系统调用poll系统调用和select非常相似,关于select的详解可以在本博客中找到,poll也是在一定时间内轮询监听用户感兴趣的文件描述符上的可读、可写和异常事件。poll系统调用原型#include<poll.h> int poll(struct pollfd fdset[], nfds_t nfds, int timeout);1)fdset参数是一个pollfd结构体类型的数组,原创 2015-12-06 23:02:17 · 2490 阅读 · 0 评论 -
【Linux编程】IO复用之select详解
IO复用技术使得程序能够同时监听多个文件描述符,这对提高程序的性能至关重要。 Linux下实现IO复用的系统调用主要有select,poll和epoll,本文主要介绍select,后两个将在后续文章中介绍。 本文介绍通俗易懂,以便于自己日后复习和广大新手们不会感到太困惑。 select系统调用 select系统调用的主要用途是:在指定的一段时间内,轮询监听用户感兴趣的文件描述符,即用户添加原创 2015-12-06 16:56:59 · 1346 阅读 · 0 评论 -
【Linux编程】大冒险之零拷贝技术探究
对于网络数据传输或I/O数据拷贝而言,零拷贝技术主要指的是避免内核缓冲区和用户缓冲区中的不必要的数据拷贝操作。Linux传统I/OLinux传统I/O操作是一种缓冲I/O,在数据传输中,操作系统会将 I/O 的数据缓存在文件系统的页缓存中,即操作系统内核缓冲区中。 比如:在网络中传输一个文件时,发送端应用程序会先检查内核缓冲区中有没有需要发送的这个文件的数据,如果没有,则会将这个文件从磁盘拷贝到内原创 2015-12-09 22:23:48 · 1521 阅读 · 0 评论 -
【Linux编程】零拷贝之sendfile( )函数
关于零拷贝技术的相关文章,请参考:【Linux编程】大冒险之零拷贝技术探究sendfile()函数函数原型:#include <sys/sendfile.h> ssize_t sendfile(int fdout, int fdin, off_t *offset, size_t count);fdout参数:是待写入数据的文件描述符,这个描述符必须是一个socket描述符。 fdin参数:是待读出原创 2015-12-09 23:04:49 · 818 阅读 · 0 评论 -
【TCP/IP学习】TCP/IP协议族概貌
TCP/IP协议族包括众多的协议,整体上是一个分层的体系,每层又包含许多网络通信需要的协议类型。 1. TCP/IP协议整体体系结构。 自顶向下依次为: 用户空间包括: 应用层:telnet,ping,OSPF,DNS 内核空间包括: 传输层:TCP,UDP,S原创 2015-11-22 14:43:26 · 475 阅读 · 0 评论