Linxu网络编程
文章平均质量分 72
Tony L.Du
风吹浪打,不忘初心
展开
-
select , poll , epoll I/O Multiplexing(I/O多路复用)
关于 I/O multiplexing:—————-这里简单介绍一下,详细请参考UNP/ linux/UNIX系统编程手册下册其实“I/O多路复用”这个坑爹翻译可能是这个概念在中文里面如此难理解的原因。所谓的I/O多路复用在英文中其实叫 I/O multiplexing,基本是这个意思: I/O multiplexing 这里面的 multiplexing 指的其实是在单个线程通过记录跟踪原创 2016-07-23 09:29:00 · 1734 阅读 · 3 评论 -
初步认识套接字编程(1)
创建1.函数原型: int socket(int domain, int type, int protocol);2.参数说明: (1)domain:协议域,又称协议族(family)。常用的协议族有AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域Socket)、AF_ROUTE等。协议族决定了socket的地址类型,在通信中必须采用对应的地址,如原创 2015-08-10 11:14:03 · 1152 阅读 · 0 评论 -
Linux服务器程序规范
除了网络通信外,服务器程序还必须考虑许多其他细节问题,零碎,但基本上时模板式的。 ———引 Linux服务器程序一般以后台形式运行。后台程序又称守护进程。它没有控制终端,因而也不会意外接受用户输入。守护进程的父进程一般是init进程(pid=1)。Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器。大部分后台进程都在/var/log下原创 2016-07-17 14:14:27 · 3011 阅读 · 0 评论 -
高性能服务器程序框架
服务器解构为三个主要模块:IO处理单元。四种IO模型和两种高效事件处理模式。逻辑单元。两种高效并发模式。存储单元。(暂不讨论)1.服务器模型(1)C/S (客户端/服务器)模型 C/S模型的逻辑很简单。服务器启动后,首先创建一个或者多个监听socket,并调用bind函数将其绑定到服务器感兴趣的端口上,然后调用listen函数等待客户连接。服务器稳定运行后,客户端就可以调用Connect原创 2016-07-18 14:30:37 · 10082 阅读 · 1 评论 -
I/O多路复用,零拷贝,高并发聊天室demo
1.客户端: 客户端程序使用poll同事监听用户输入和网络连接,并利用splice函数将用户输入内容直接定向到网络连接上以发送之,从而实现数据零拷贝,提高了程序执行效率。splice函数简介:#include <fcntl.h> ssize_t splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len原创 2016-07-19 22:08:34 · 1718 阅读 · 0 评论 -
仿MoDuo封装简易C++网络库
整体架构:主要有这么几个类: Server, Epoll, Socket, Accept, User.初版代码,i/o处理不完善,仅供参考,主要是结构 还有部分功能没有实现,以后陆续加需求。1.Accept类 第一层:Accept类,主要处理客户端连接,为上层提供与该客户端通信的套接字描述符class FDB_Accept {public: FDB_Accept() = defaul原创 2016-08-02 09:38:21 · 2272 阅读 · 0 评论