
Linux网络编程
cy320h
不知道你在想什么
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
web服务器(线程池实现)
我们先要准备线程池的模板参数类,封装对逻辑任务的处理先是三个同步机制的封装#ifndef LOCKER_H#defien LOCKER_H#include<exception>#include<pthread.h>#include<semaphore.h>class sem{pubilc: 创建初始化 sem() { ...原创 2018-06-03 14:51:53 · 1387 阅读 · 0 评论 -
服务端处理非活动的连接
超时事件也是网络程序需要处理的事件,比如下面讲到的服务端定期检验一个客户端连接的活动状态。通常服务器程序需要管理众多定时事件,所以需要程序有效组织这些事件,使之能在预期的时间点触发且不影响程序逻辑。 在这里我们将所有定时器及对应超时时间存放在升序双向链表中,在超时处理函数中依次处理所有到期的定时器事件,以实现对定时事件的统一管理。升序定时器链表定义如下:#ifndef LST_TIMER...原创 2018-06-05 21:44:45 · 747 阅读 · 0 评论 -
I/O复用
1.使得程序能同时监听多个文件描述符。使用情况:客户端程序要同时处理多个socket。客户端程序要同时处理用户输入和网络连接。TCP服务器要同时处理监听socket和连接socket。服务器要同时处理TCP请求和UDP请求服务器要同时监听多个端口,或处理多种服务虽然能同时监听多个文件描述符,但它本身是阻塞的,当多个文件描述符同时就绪时,不采取措施,程序只能按照次序处理其中的每一个文件描述符。1.s...原创 2018-06-01 18:07:19 · 137 阅读 · 0 评论 -
定时方法
1.定时机制: 定时是在一段时间之后触发某段代码的机制,我们可以在这段代码中依次处理所有到期的定时器。有三种定时方法: ①socket选项SO_RVETIMEO和S0_SEDTIMEO ②SIGALRM信号 ③I/O复用系统调用的超时参数先说第一个 1. socket选项SO_RVETIMEO和S0_SEDTIMEO 它们分别用来设置接受数据和发送数据的超时时间。...原创 2018-09-01 13:41:43 · 1016 阅读 · 0 评论 -
Linux信号
1.信号机制也需要信号源: 用户:用户通过终端键入特殊字符(ctrl+c)。进程:运行kill命令或者kill()系统调用。系统:系统异常(浮点异常,访问非法内存),系统状态发生变化信号机制的过程无非在于信号的发送,接受和处理;一个进程给其他进程发送信号的API是kill()系统调用#include<sys/types.h>#include<signa...原创 2018-09-01 13:42:56 · 250 阅读 · 0 评论