网络工程
文章平均质量分 78
coding_Xu
写程序就要从点到面,以小观大,坚持下去就有进步,步步为营,才能步步为赢。
展开
-
recv函数异常处理
网络模型:通信进程为一个常驻内存进程,监听客户端的请求,当到达一个请求后,fork出一个子进程,做具体业务处理。此时服务端对于recv函数的处理一般会是sigset(SIGALARM, TimeOut);alarm(time_out)while(recv(...) if(errno == EINTR) continue; els原创 2015-03-02 23:21:25 · 4011 阅读 · 0 评论 -
IO模型之IO多路复用
服务器端编程一般处理三个问题:网络IO、业务逻辑处理和数据存储。个人感觉网络IO的设计与实现最能体现一个后台工作者的编程功底。当然,目前流行的第三方库如Libevent、Libev、Muduo等都已经很好的解决了这个问题,此处,仅仅是自己把平时自己看到的一些关于网络IO的知识做个记录。 目前典型的IO模型对比如下:I/O模型读写操作和阻塞阶段阻塞IO原创 2015-03-10 00:10:38 · 1549 阅读 · 0 评论 -
网关协议学习:CGI、FastCGI、WSGI
CGICGI即通用网关接口(Common Gateway Interface),是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连转载 2015-03-17 16:15:22 · 541 阅读 · 0 评论 -
IO多路复用之select
前言:select系统调用的用途是:在指定的一段时间内,监听用户感兴趣的文件描述符上的可读、可写和异常事件。select API:int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, struct timeval* timeout);FD_ZERO(fd_set *fd_set);原创 2015-03-10 23:01:53 · 638 阅读 · 0 评论 -
IO多路复用之epoll
前言:epoll是Linux所特有的I/O复用函数。它在实现和使用上与select、poll有很大的差异。首先,epoll使用一组函数来完成任务而不是单个函数。其次,epoll把用户关心的文件描述符上的事件放在内核里的一个事件表中,从而无需象select和poll那样每次调用都要重复传入文件描述符集或事件集。epoll API:int epoll_create(int size); /原创 2015-03-10 22:54:39 · 621 阅读 · 0 评论 -
The C10K problem翻译
The C10K problem翻译The C10K problem如今的web服务器需要同时处理一万个以上的客户端了,难道不是吗?毕竟如今的网络是个big place了。 现在的计算机也很强大了,你只需要花大概$1200就可以买一个1000MHz的处理器,2G的内存, 1000Mbit/sec的网卡的机器。让我们来看看--20000个客户,每个为50KHz,100Kbyes和转载 2015-03-11 21:50:07 · 842 阅读 · 0 评论 -
IO多路复用之poll
前言:poll系统调用和select类似,也是在指定时间内轮询一定数量的文件描述符,以测试其中是否有就绪者。poll API:int poll(struct pollfd* fds, nfds_t nfds, int timeout);文件描述符的就绪条件:--可读1、socket内核接收缓冲区中的字节数大于或等于其低水位标记SO_RCVLOWAT。此时我们可以无阻原创 2015-03-10 22:26:10 · 619 阅读 · 0 评论 -
12种常见的并发网络服务程序设计方案
文中多个片段摘自陈硕老师的《Linux多线程服务端编程-使用muduo C++网络库》,特整理于此,备学习、工作使用。 12种常见的并发网络服务程序设计方案方案 0: 这其实不是并发服务器,而是 iterative 服务器,因为它一次只能服务一个客户。代码见 UNP figure 1.9,UNP 以此为对比其他方案的基准点。原创 2015-03-10 21:38:48 · 962 阅读 · 0 评论