当前位置: 首页 > 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.hkea.cn/news/14461426/

相关文章:

  • 福州外贸建站wordpress 搬家到本地
  • 百度做网站续费费用轻量应用服务器wordpress
  • 企业网站模板建立流程山东进一步优化
  • 怎么在网站上做下载5118网站如何使用免费版
  • 怎么在百度上做自己的网站苏州建站公司哪个好
  • joomla 网站图标ftp制作网站
  • 网站开发所需经费网页设计实训报告总结200字
  • 陕西建设人才网站商城网站建设需要什么团队
  • 商城网站里可以再放cms吗网站建设交接表
  • html5 手机网站模板网站开发按前端后端分解
  • 宜春网站开发公司用手机设计装修的软件
  • 网站技术解决杭州网站建设那家好
  • 做电影网站资源哪里来的wordpress打开媒体链接设置
  • 自做网站宁德小程序开发
  • 重庆专业网站推广报价中国建设招聘信息网站
  • 有声小说网站开发顺企网我做网站
  • 自己建设购物网站wordpress微信公众号关注
  • 做彩票网站推广犯法吗周口seo优化
  • 静态网站制作流程生成二维码的小程序
  • 网站方案策划包头网站建设SEO优化制作设计公司
  • 印尼请人做网站长沙网站seo费用
  • 有没有一个网站做黄油视频网址申请注册方法
  • 自学考试 网页制作与网站建设06627网站收缩引擎入口
  • 平面设计与网站开发的概述大型网站建设费用
  • 检察门户网站建设学校网站模板
  • 域名和主机搭建好了怎么做网站建设一个公司网站 需要钱吗
  • 上海医疗网站备案农产品网站开发
  • asp网站建设教程成都到西安高铁多少钱
  • 做网站编辑需要具备的素质交换链接案例
  • 抚州建设网站的公司深圳市住房和建设局官网站首页