当前位置: 首页 > news >正文

单网页网站制作投票小程序免费制作

单网页网站制作,投票小程序免费制作,投资公司经营范围,wordpress 可视化排版libevent源码学习笔记 libevent安装libevent源码解析#xff08;1#xff09;事件对象#xff08;2#xff09;事件操作#xff08;3#xff09;事件循环#xff08;4#xff09;事件处理 常用指令问题记录问题一#xff1a;长连接的管理问题二#xff1a;连接关闭问… libevent源码学习笔记 libevent安装libevent源码解析1事件对象2事件操作3事件循环4事件处理 常用指令问题记录问题一长连接的管理问题二连接关闭问题问题三客户端与服务器端存在多个TCP连接数据发送是依次的还是并行的 libevent安装 1解压libevent压缩包并进入到文件目录下 ·tar -zxvf libevent-2.1.12-stable.tar.gz ·cd libevent-2.1.12-stable.tar/ 2运行./configure用于配置编译选项和环境由于系统中没有OpenSSL库所以使用了–disable-openssl选项来禁用OpenSSL相关功能减少依赖。 ·./configure --disable-openssl 3运行make命令用于编译源代码并生成示例可执行文件或库文件。 4运行sudo make install用于安装编译生成的库文件和头文件到系统的标准位置以便其他程序可以在编译和链接时使用libevent.so库。 libevent源码解析 libevent是一个事件驱动的网络编程库它提供了一种跨平台的方式来处理I/O事件和定时器事件。libevent事件驱动的核心是reactor模式。reactor模式将IO事件、定时器事件抽象成事件对象并使用一个事件循环来监听这些事件对象。当有事件发生时事件循环会调用相应的回调函数来处理这些事件。 1事件对象 ·event_base_new() //构造对象 ·event_base_free() //销毁对象 ·event_new() //构建事件对象、绑定、事件回调 ·event_free() //销毁事件对象 ·bufferevent_socket_new() //构建bufferevent对象 ·bufferevent_free() //销毁bufferevent对象2事件操作 ·event_add() //注册事件 ·event_del() //注销事件 ·bufferevent_enable() //注册事件 ·bufferevent_disable() //注销事件3事件循环 ·event_base_dispatch() //启动事件循环libevent会进入一个无限循环中不断监听注册的I/O事件和定时器事件。当有事件发生时libevent会调用相应的回调函数来处理这些事件。在事件处理完毕后libevent会继续等待下一个事件的发生。 ·event_base_loop() //启动事件循环并一直等待事件的发生 ·event_base_loopexit() //通知事件循环在指定时间后退出 ·event_base_break() //通知事件循环在指定时间后立即退出4事件处理 libevent使用事件驱动的编程模型来处理事件。在这种模型中事件循环会不断监听注册的I/O事件和定时器事件。当有事件发生时libevent会调用相应的回调函数来处理这些事件。当使用libevent注册一个事件时libevent会将这个事件对象添加到事件循环中。当有事件发生时libevent会调用相应的回调函数来处理这个事件。在回调函数中可以执行相应的操作例如读取数据、发送数据、关闭连接等。 ·libevent通信流程 1. 初始化首先需要创建一个事件处理器event_base并初始化它。在初始化过程中可以设置事件处理器的一些参数比如事件处理模式、超时时间等。 2. 创建事件在事件处理器中需要创建需要监听的事件。通过调用event_new()函数来创建事件并设置事件的回调函数和事件类型。 3. 添加事件创建完事件之后需要将事件添加到事件处理器中通过调用event_add()函数来添加事件。添加事件之后事件处理器就可以监听这些事件了。 4. 运行事件循环在添加完事件之后需要进入事件循环等待事件的到来。通过调用event_base_dispatch()函数来运行事件循环当有事件到来时事件处理器会自动调用相应的回调函数进行处理。 5. 处理事件当有事件到来时事件处理器会自动调用相应的回调函数进行处理。在回调函数中可以进行相应的操作比如读写数据、关闭连接等。 6. 清理资源当程序退出时需要清理资源。通过调用event_base_free()函数来释放事件处理器占用的资源。常用指令 指令描述nc host port;创建TCP连接nc -u host port创建UDP连接nc -l port监听端口nc host port file发送文件nc 127.0.0.1 8080 file.txtnc -l port file接收文件nc -l 8080 file.txtnc -zv host start-port-end-port端口扫描nc -zv 127.0.0.1 1-100netstat -tuln查看监听的TCP端口ss -tuln查看监听的TCP端口sudo iptables -L查看IPV4防火墙规则sudo ip6tables -L查看IPV6防火墙规则 问题记录 问题一长连接的管理 通常情况下客户端和服务器端会维护一个连接池用来管理多个长连接。在连接池中每个连接都可以用一个唯一的标识符例如连接编号、连接句柄、文件描述符等来标记但这个标识符不是由 TCP 协议自动分配的而是由编程语言或操作系统提供的接口来生成。 问题二连接关闭问题 1.任务结束的条件满足其中一方通常是服务器端发送任务结束信号给对方客户端。 2.接收到任务结束信号的一方客户端根据协议判断任务结束也可以在任务结束后发送任务结束确认信号给对方服务器端。 3.双方都知道任务结束后可以分别在合适的时机主动关闭连接。关闭连接的步骤是主动关闭一方发送一个关闭连接的请求等待对方确认。对方接收到关闭请求后确认关闭并回复。然后双方都可以关闭自己的连接。这样可以保证双方都在知情的情况下安全地关闭连接。需要注意的是在某些特殊情况下如果连接的关闭是由客户端或服务器端中的某个程序意外终止或崩溃造成的可能会导致连接未正确关闭。在这种情况下可以使用心跳机制或超时机制来检测连接的状态并在连接空闲一段时间后自动关闭连接以防止连接资源泄漏。 问题三客户端与服务器端存在多个TCP连接数据发送是依次的还是并行的 在客户端与服务器端存在多个TCP连接的情况下数据发送可以是依次的也可以是并行的具体取决于实现的方式和程序设计。 1依次发送如果客户端在处理数据发送时使用一个连接发送完一个数据后再使用下一个连接发送下一个数据这种情况下数据发送是依次进行的。客户端在处理多个连接时每个连接发送数据的过程是按顺序进行的即一个连接发送完后才会处理下一个连接发送。 2并行发送如果客户端在处理数据发送时同时利用多个连接进行数据发送这种情况下数据发送是并行进行的。客户端可以在多个连接上同时发送数据不需要等待一个连接的数据发送完毕再处理下一个连接的数据发送。
http://www.w-s-a.com/news/236817/

相关文章:

  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回
  • 销售产品做单页还是网站seo有哪些作用
  • 网站视觉规范南宁网站优化推广
  • 公司起名打分最准的免费网站学设计的学校
  • 用cn作网站行么WordPress网站打不开nginx
  • 顺德龙江网站建设百货商城自助下单网站
  • 门户网站采用较多的模式是wordpress自动搜索缩略图
  • 深圳设计功能网站做网站推广怎么做
  • 海口专业网站建设地址wordpress站点标题是什么
  • 青岛做网站那家好网页素材网
  • 宁夏银川做网站的公司网络营销有哪些推广方法
  • 免费域名网站哪个最好东莞企业网站排名
  • dz做网站网址模版
  • 做外贸网站平台中华室内设计师网
  • 三大网络架构seo是啥职业
  • 一个域名可以做中英文两个网站吗搜索引擎营销的6种方式
  • 可以做ppt的网站天津网站建设怎么样
  • 网站怎么做的qq邮件订阅浙江省住房和城乡建设厅网站查询
  • 主机屋网站在线做图片
  • 河南省城乡住房建设厅网站wordpress登陆密码
  • 漳州做网站的公司搭建网站多少时间
  • 网站开发实习计划模板微营销手机
  • 网站设计与制作是做什么工作免费封面设计在线制作生成
  • 网站开发的教学课程网站广告调词软件