自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Day7:Lars V0.9 UDP协议支持 +Lars V0.10 异步消息任务机制

(1) _read_buf/_write_buf:读写缓存(3) 临时记录客户端的地址(4) 消息路由分发机制。

2024-06-04 20:47:07 305

原创 Day6:Lar V0.8 消息队列与线程池

根据线程个数(thread_cnt)初始化一个线程池之后,首先创建一个event_loop,用于监听当前线程所关联的connfd读写状态和对应的thread_queue的evfd读事件;该任务在main_thread接受accept成功之后进行发送,包含两个属性:type(NEW_CONN,本次连接的类型是新建连接任务还是一般任务), data(connfd)。(1)thread_queue<task_msg>* *_queues:thread_queue的集合。(3) _queue队列。

2024-06-03 21:10:36 386

原创 Day5: Lars V0.5 tcp_conn连接属性 + Lars V0.6 消息路由分发机制

添加一个msg_router属性,初始化msg_router对象,并且给tcp_server提供一个add_msg_router(添加一个路由回调业务的方法)添加一个msg_router属性,给tcp_client提供一个add_msg_router(添加一个路由回调业务的方法)_router:hash_map类型<key, value> -----><消息ID,处理的业务回调函数>;_args:hash_map类型<key, value>-----><消息ID,处理业务回调函数的形参>;

2024-06-01 17:10:43 296

原创 Day4: Lars V0.4连接和消息封装 + 客户端接口

连接成功时,强制给server端回信,调用send_message()将数据写到cli的obuf中,同时激活写事件,调用write_callback回调方法,其中执行do_write,将数据写给对端之后删掉_connfd的写事件。tcp_server已经构造完毕,当client进行连接, server进行accpet(),得到新的connfd------->server将新的connfd构造成一个tcp_conn对象,该对象进行基本的读写业务等(已经将连接封装为一个tcp_conn对象)

2024-05-31 17:06:02 634

原创 Day3: Lars的回显功能+多路IO事件机制

将connfd的读事件和读回调server_rd_callback添加到event_loop中)------------->>>server_rd_callback(读取客户端数据;将connfd读事件删除,添加写事件和写回调server_wt_callback到event_loop中)------------->>>server_wt_callback(将数据写回客户端;将connfd写事件删除,添加读事件和读回调server_rd_callback到event_loop中。

2024-05-30 20:58:58 326

原创 Day2: 内存管理中的读写缓冲区

send_data(char *data, int datalen):将data数据写到output_buf中的_buf中。write2fd(int fd):将output_buf中的_buf数据写到对端fd中。int read_data(int fd):将fd读取至io_buf中。clear():清空_buf并将_buf放回buf_pool内存池中。pop(int len):弹出已处理输出(len为已处理数据长度)length():获取_buf未读处理数据的长度。

2024-05-29 15:23:43 213

原创 Day1: Lars基础服务功能+内存管理

每个内存块的属性包括:容量(capacity),有效数据长度(length),未处理的数据首地址(head), 当前内存块首地址(data),构造链表结构io_buf类型指针next。io_buf *buf_pool::alloc_buf(int N):得到一个io_buf的方法,即开辟一个io_buf。内存池的数据句柄map<key, value>----><内存块刻度,当前刻度下所挂载的io_buf链表>;copy(io_buf *other):将other的有效数据拷贝到自身中。

2024-05-28 21:05:12 385

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除