摘要:
【Linux网络编程】Reactor模式与Proactor模式 Reactor模式 Reactor 模式是指主线程即 IO 处理单元只负责监听文件描述符上是否有事件发生,有则立刻将该事件通知给工作线程即逻辑单元,除此之外,主线程不做任何其它实质性的动作。读写数据,接受新的连接,以及处理客户请求均在工 阅读全文
摘要:
【Linux网络编程】基于 EPOLL 的 SOCKET 通信 epoller.h #ifndef EPOLLER_H #define EPOLLER_H #include <sys/epoll.h> #include <fcntl.h> #include <unistd.h> #include < 阅读全文
摘要:
【Linux网络编程】I/O 多路复用技术 什么是 I/O 多路复用?为什么需要 I/O 多路复用 最简单的 socket 网络模型,就是单线程模型,一个同时进行监听、处理,然而,单线程模型同时只能服务一个客户端,当线程发生阻塞的时候,其他客户端只能排队等待,甚至连接失败。 为了能够同时服务更多的客 阅读全文
摘要:
【Linux网络编程】网络编程常见概念 阻塞与非阻塞 阻塞 IO:执行的系统调用可能因为无法立即完成而被操作系统挂起,直到等待的事件发生为止。如服务端的 accept(),在客户端未 connect() 时,其一直处于阻塞状态直至发生为止,但我们可以对监听的文件描述符通过 fcntl() 设置 O_ 阅读全文
摘要:
【Linux网络编程】Socket Api函数 TCP/IP 协议族 TCP/IP 协议族有 sockaddr_in 和 sockaddr_in6 两个专用的 socket 地址结构体,它们分别用于 IPv4 和 IPv6,在此只将 IPv4,如下为 struct sockaddr_in: stru 阅读全文
摘要:
【Linux网络编程】字节序 字节序 字节序就是字节在内存中存储的顺序,如32位整数0x01234567,在内存中存储时,有如下两种顺序: 大端序将数值的高位存储在低位地址中,小端序则相反。 网络字节序 网络中传输数据均采用大端序。 Linux字节序转换函数 在 #include <netinet/ 阅读全文