linux网络编程
文章平均质量分 84
A_YT
这个作者很懒,什么都没留下…
展开
-
一个简单的回射服务器
程序如下:服务器端:#include #include #include #include #include //出错函数#define err_exit(m)\ {\ perror(m);\ exit(EXIT_FAILURE);\ }//最大连接数#define LIST原创 2016-12-30 22:32:18 · 2640 阅读 · 0 评论 -
增加信号处理的回射服务器
问题:由上一篇文章分析可知,若客户端进程终止,则服务器子进程会变成僵尸进程。原因是由于服务器子进程退出后,服务器父进程未获取子进程的状态信息,导致子进程变成僵尸进程。解决方法:由于子进程退出会产生SIGCHLD信号给父进程,所以添加一个对该信号的捕获函数,在该函数内获取子进程的终止状态,从而避免产生僵尸进程。程序:信号处理函数:void sigfunc(int signo){原创 2017-02-16 20:48:07 · 513 阅读 · 0 评论 -
增加I/O多路复用的回射程序
在上一版本的回射程序中,若服务器子进程被杀死,则客户端检测不到这一事件的发生。原因在于,子进程被杀死时,虽然发送了FIN给客户端套接字,但此时客户端进程是阻塞于等待标准输入上的,因此检测不到套接字的输入。解决办法就是使用I/O多路复用。原创 2017-02-22 10:36:24 · 554 阅读 · 0 评论 -
I/O多路复用之poll
对于poll的理论讲解,可参考文章:http://www.cnblogs.com/Anker/p/3261006.html实战:写一个echo程序,服务器原样返回客户端发送过来的内容。用poll写。client:#include #include #include #include #include #include #define err_exit(m)\原创 2017-02-22 10:55:21 · 383 阅读 · 0 评论 -
I/O多路复用之epoll
1.epoll介绍epoll是当前开发大规模并发网络程序的热门人选。epoll在linux 2.6内核中正式引入。linux下设计并发网络程序的几种方法有:典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread PerConnection)模型,以及select模型和poll模型,那为何还要再引入epoll呢?2. 常用模型原创 2017-02-22 21:00:00 · 461 阅读 · 0 评论 -
Linux Epoll介绍和程序实例
Linux Epoll介绍和程序实例1. Epoll是何方神圣?Epoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TP转载 2017-02-22 21:16:00 · 331 阅读 · 0 评论 -
【Linux学习】epoll详解
什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epol转载 2017-02-22 21:17:36 · 386 阅读 · 0 评论 -
Explorer : 发布一个key-value存储系统,带有客户端和服务器端
Explorer一个key-value存储系统,带有客户端和服务器端。使用非常方便。使用B+树作为存储引擎,客户端和服务器端使用TCP协议进行通信。 代码采用C++实现,底层将客户端和服务器通信封装成了一个网络库,里面还有些还不错的实现可供看看,比如线程池、工作队列、Reactor设计模式实现等等。项目地址:https://github.com/zinx20原创 2017-07-28 21:53:15 · 925 阅读 · 0 评论