libevent C++高并发网络编程
文章平均质量分 95
libevent C++高并发网络编程
kaka的卡
这个作者很懒,什么都没留下…
展开
-
FTP服务器项目
本项目实现一个FTP服务器,通过FTP客户端(如FileZilla)来获取文件列表、下载、上传、删除文件等功能。用到了libevent网络事件库管理socket的连接加入线程池来并发的处理请求,应用创建型模式-工厂模式来管理FTP客户端的请求命令码去注册对象。Libevent的更多内容链接:libevent C++高并发网络编程FTP协议的更多内容链接:FTP协议详解工厂模式的更多内容链接:C++设计模式 - 创建型模式之工厂模式项目完整代码git仓库。原创 2023-06-11 18:49:26 · 1778 阅读 · 0 评论 -
FTP协议详解
FTP为的缩写,即文件传输协议,是TCP/IP协议族中的协议之一。FTP是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。RFC 959定义了FTP协议规范。同大多数Internet服务一样,FTP也是一个客户/服务器系统(C/S系统)。用户通过一个客户端程序连接至在远程计算机上运行的服务器程序。依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。原创 2023-06-11 13:33:31 · 9729 阅读 · 1 评论 -
libevent高并发网络编程 - 05_libevent实现http客户端
对象来处理底层的网络 I/O,并使用指定的 DNS 解析器解析主机名。实现http客户端的GET、POST请求编写,请求服务器的文件并保存。用于获取 URI 的查询部分,获取路径后面的参数。并指定响应回调函数,配置请求头部和请求数据,最后通过。发送http请求前,需要对目标的URL进行解析。的回调函数,在请求回调函数中处理返回的数据。指定请求类型和请求uri发送http请求。用于获取 URI 的主机名部分。用于获取 URI 的路径部分。获取一个HTTP请求的响应状态码。需要注意的是,在使用完。原创 2023-05-14 19:27:24 · 1241 阅读 · 0 评论 -
libevent高并发网络编程 - 04_libevent实现http服务器
在libevent中,HTTP的实现主要是通过evhttp模块来完成的。evhttp提供了一个高层次的HTTP服务器接口,可以处理HTTP请求并发送HTTP响应。在源码中,libevent的HTTP协议处理主要是通过evhttp模块来完成的。当客户端发起一个HTTP请求时,libevent将该请求解析为结构体表示,并调用用户设置的请求处理函数进行处理。结构体定义了HTTP请求的各个字段,如请求行、请求头、请求正文等。例如,以下是int major;// 主版本号 int minor;原创 2023-05-14 19:24:25 · 2398 阅读 · 0 评论 -
libevent高并发网络编程 - 03_bufferevent filter过滤器
是libevent库提供的一个功能,可以通过添加filter对输入或输出数据进行转换和过滤,可以在读取前和写入后对数据进行一系列的预处理操作。是一种包装另一个bufferevent的方式,它提供了两个回调函数:readcb和writecb。这些回调函数可以在读取或写入数据之前或之后对数据进行处理。例如,可以使用bufferevent filter将所有传入数据转换为大写字母,并将其发送到底层bufferevent中。使用进行数据过滤的流程如下创建底层:首先需要创建一个底层的,用于接收和发送原始数据。原创 2023-05-14 19:21:18 · 621 阅读 · 0 评论 -
libevent高并发网络编程 - 02_libevent缓冲IO之bufferevent
具体而言,bufferevent 会维护两个水位,一个是读取的低水位(read low watermark),另一个是写入的高水位(write high watermark)。而当缓冲区中的数据量达到或超过写入高水位时,bufferevent 会暂停读取并触发写入事件,直到缓冲区中的数据量降到一定程度。会尽可能地将缓冲区中的数据写入网络中,但也要考虑到网络带宽、延迟和拥塞等因素,以确保数据传输的效率和可靠性。函数并不会真正地读取或写入数据,而只是模拟触发相应的事件,从而让事件回调函数被调用。原创 2023-05-14 19:16:18 · 1130 阅读 · 0 评论 -
libevent高并发网络编程 - 01_libevent事件Event处理
libevent是一个事件驱动框架,可以用于处理网络通信等I/O操作其中,事件处理(Event)和缓冲区( bufferevent)处理是两个不同的组件。事件处理(event)主要负责监听文件描述符上的事件,并在事件发生时调用相应的回调函数进行处理例如,一个TCP连接建立成功后,事件处理器可以监听该连接上是否有可读、可写或异常事件发生,并在事件发生时触发相应的回调函数进行数据处理。缓冲区处理(bufferevent)则是对事件处理的补充,它提供了对I/O数据的缓冲和处理功能。原创 2023-05-07 19:06:46 · 1009 阅读 · 0 评论