![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络模型
文章平均质量分 80
huanzai2
这个作者很懒,什么都没留下…
展开
-
Skynet网络模型
接口:// 创建epoll套接字 返回socket_server*上下文struct socket_server * socket_server_create();// 释放资源void socket_server_release(struct socket_server *);// IO循环int socket_server_poll(struct socket_server *,原创 2014-04-28 15:14:00 · 891 阅读 · 0 评论 -
libevent学习四
构建event_base在你开始使用任何Libevent前,你需要先创建一个或多个event_base。每个event_base管理着一个event的集合,并可以检测出哪些event被激活了。如果event_base使用了锁,就可以在多线程中安全的访问它。但要注意它的主poll函数只能被单个线程运行。如果你想用多个线程运行IO迭代器,你需要为每个线程分配一个event_base。注:在以后原创 2015-01-22 23:00:39 · 1113 阅读 · 1 评论 -
libevent学习三
安装LibeventLibevent有一些贯穿于整个程序的全局设定。它们影响着整个库。你必须提前确定这些设定,否则可能会造成不一致的状态。Libevent的日志消息Libevent可以记录内部的错误和经过。当然编译时增加了日志支持,它也会记录调试信息。默认情况下,这些信息输出到标准错误。你可以使用自己的调试方法去重写它。#define EVENT_LOG_DEBUG 0#de原创 2015-01-20 23:12:33 · 844 阅读 · 0 评论 -
libevent学习一
libevent:一个事件通知库。libevent的API提供了一个可以执行回调函数的机制。这些事件可以是一个文件描述符或到达指定时间。而且,libevent也支持由signals或常规的timeout产生的回调。原创 2015-01-19 23:14:42 · 1314 阅读 · 0 评论 -
libevent学习二
Libevent库是用来开发高效,可移植的非阻塞IO。它的设计目标:1. 可移植性2. 高效性:Libevent试图使用每个平台上的最高效的非阻塞IO的实现3. 可扩展性:Libevent被设计成,即使程序需要去处理上万条活跃的socket也能运行良好。4. 方便性:不管在什么情况下,用最正常的方式去用libevent写一个程序,都可能稳定,可移植。Libevent库包原创 2015-01-20 20:38:46 · 1008 阅读 · 0 评论 -
libevent学习八
Bufferevents高级应用本节讲述了Libevent的一些高级特性。配对bufferevents有些时候你可能需要一个可以自我沟通的程序。例:多数情况下,用户的程序会向对外连接去写入数据,有时候用户需要对它自己开放一个连接,并往这条连接内写数据。一种解决方案是通过启动一个端口只给本程序使用,但是这种方案是通过网络栈来实现自我交互,它是比较浪费资源的。第二种方案就是通过配对原创 2015-02-04 15:57:24 · 909 阅读 · 0 评论 -
libevent学习七
Bufferevents:概念和基础很多时候,一个程序需要处理一些数据的缓存,不止应用在答复event上。例如:当我们需要去写出数据,通常会这样做:1. faxu原创 2015-02-02 22:38:48 · 1115 阅读 · 0 评论 -
网络库
最近想写一个网络库。想要实现的目标:1. 负责收发消息,不关心消息格式2. 动态添加监听端口3. 动态添加对外连接4. 关闭连接原创 2015-01-06 21:35:38 · 879 阅读 · 2 评论 -
libevent学习六
eventsLibevent的基本操作单元是event。每个event都意味着一个条件集合,包括:1. 一个准备好读或写的文件描述符。2. 一个“将”准备好读或写的文件描述符(只有边缘模式下)3. 一个超时事件4. 一个信号事件5. 一个人为触发的事件Event有相似的生命周期。一旦你通过Libevent方法去设置了一个event,并把它与event_base相关联,那原创 2015-01-29 20:17:12 · 858 阅读 · 0 评论 -
Linux多线程服务器端编程:使用muduo C++网络库 读书笔记
1. 需要注意:scoped_ptr/shared_ptr/weak_ptrdou原创 2014-10-30 22:36:07 · 1616 阅读 · 0 评论 -
pthread_cancel引起的死锁
最近发现程序无法正常终止,原创 2014-09-11 15:30:44 · 1371 阅读 · 0 评论 -
icmp应答包如何定位ping进程
icmp应答包如何定位ping进程今天一个朋友说他自己实现一个ping程序。要过他的代码看了一看。通常的ping程序都是通过icmp协议实现,但是icmp协议却不同于tcp与udp。tcp与udp协议首部包含着源端口号和目的端口号,所以当一个tcp或udp协议应答返回时,我们可以根据对应的端口号,定位到相应的处理进程。但是icmp的协议里面并不包含端口号,ping程序是如何定位到应答包属于自己发出的原创 2016-09-08 19:52:36 · 2499 阅读 · 0 评论