网络编程
竹宝宝的小超人
嵌入式开发;汽车电子;人工智能
展开
-
Redis网络通讯协议
Redis的通信协议首先是以行来划分,每行以\r\n行结束。每一行都有一个消息头,消息头共分为5种分别如下: (+) 表示一个正确的状态信息,具体信息是当前行+后面的字符。 (-) 表示一个错误信息,具体信息是当前行-后面的字符。 (*) 表示消息体总共有多少行,不包括当前行,*后面是具体的行数。 ()表示下一行数据长度,不包括换行符长度\r\n,后面则是对应的长度的数据。 (:) 表示返回一个数...原创 2020-03-19 10:14:32 · 134 阅读 · 0 评论 -
零拷贝实现远离
1、应用程序中调用read() 方法,这里会涉及到一次上下文切换(用户态->内核态),底层采用DMA(direct memory access)读取磁盘的文件,并把内容存储到内核地址空间的读取缓存区。 2、由于应用程序无法读取内核地址空间的数据,如果应用程序要操作这些数据,必须把这些内容从读取缓冲区拷贝到用户缓冲区。这个时候,read() 调用返回,且引发一次上下文切换(内核态->用...原创 2020-01-08 17:25:30 · 121 阅读 · 0 评论