
x小实验
Tudoc
小白一枚,请多多之处我的错误,我定当铭记,加以改正
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用splice函数实现0拷贝的回显服务器
在平时的收发数据总是会调用系统调用recv和send等函数,这些函数都会进入内核进行数据的拷贝,所以说还是比较耗费资源的,所以就有了实现0拷贝的函数,这里就使用其中的splice函数实现一个回显服务器,用于将客户端发送的消息原样发送给客户端,并且不使用recv、send函数首先介绍一下splice:splice函数用于在两个文件描述符之间移动数据,也是零拷贝操作,定义如下:#include <fcntl.h>ssize_t splice(int fd_in, loff_t * off_i原创 2020-11-27 13:46:04 · 445 阅读 · 1 评论 -
简单使用cJSON进行json格式的转换
今天看了json格式,也了解了使用C语言进行json格式的转换,下面写了一个简单的测试记录一下Ubuntu 下使用cJSON进行格式转换,首先需要下载安装cJson进行编译安装:github 地址: https://github.com/DaveGamble/cJSON下载git clone https://github.com/DaveGamble/cJSON.git参考 Readme 进行编译下载后的文件里面有两个主要的文件,cJSON.c和cJSON.h,使用的时候把这两个文件包含在源文件原创 2020-11-26 23:33:45 · 1030 阅读 · 0 评论 -
使用c++实现简单的reactor模式
reactor是一种高效的服务端模式,实质是使用io多路复用,比如select、epoll、poll等,关于epoll和reactor的详细介绍往上也有很多的博文,这里贴出reactor的一篇博客:reactor模型reactor模型的几种角色:handle 即文件描述符Synchronous Event Demultiplexer 即IO多路复用Event Handler 即处理事件的回调函数Concrete Event Handler 即具体的实现逻辑处理的函数Ini原创 2020-11-22 00:48:52 · 3707 阅读 · 1 评论 -
使用c++11 thread库实现简单的TCP多线程服务器
其实就是简单的TCP连接,使用了thread库实现多线程,包括使用了类成员函数作为线程函数,传递参数,使用detach将子线程作为后台线程运行,主线程持续接收新的连接服务端代码:#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <unistd.h>#include <errno.h>原创 2020-11-06 17:06:46 · 1638 阅读 · 0 评论