03 2022 档案
摘要:http协议 请求协议: 浏览器组织,发送GET /hello.c Http1.1\r\n Host: localhost:2222\r\n User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/201001 01 Fire
阅读全文
摘要:服务器端 libevent 创建TCP连接: 创建event_base 创建bufferevent事件对象。bufferevent_socket_new(); 使用bufferevent_setcb() 函数给 bufferevent的 read、write、event 设置回调函数。 当监听的 事
阅读全文
摘要:安装 开源。精简。跨平台(Windows、Linux、maxos、unix)。专注于网络通信。 源码包安装: 参考 README、readme ./configure 检查安装环境 生成 makefile make 生成 .o 和 可执行文件 sudo make install 将必要的资源cp置系
阅读全文
摘要:概念 IPC: pipe、fifo、mmap、信号、本地套(domain) CS模型。 对比网络编程 TCP C/S模型, 注意以下几点: 本地套接字对比网络套接字 代码 server.c #include <stdio.h> #include <unistd.h> #include <sys/so
阅读全文
摘要:思路 recv()/send() 只能用于 TCP 通信。 替代 read、write accpet(); Connect(); 被舍弃 server: lfd = socket(AF_INET, STREAM, 0); SOCK_DGRAM 报式协议。 bind(); listen(); 可有可无
阅读全文
摘要:TCP 面向连接的,可靠数据包传输。对于不稳定的网络层,采取完全弥补的通信方式。 丢包重传。 优点:稳定。数据流量稳定、速度稳定、顺序 缺点:传输速度慢。相率低。开销大。 使用场景:数据的完整型要求较高,不追求效率。大数据传输、文件传输。 UDP 无连接的,不可靠的数据报传递。对于不稳定的网络层,采
阅读全文
摘要:线程池 线程池代码 #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <assert.h> #include <stdio.h> #include <string.h> #include <signal.h>
阅读全文
摘要:
阅读全文
摘要:epoll介绍 本质是一个红黑树,epfd是红黑树的根,然后挂子节点 epoll所需函数 int eopll_create(int size) size:创建的红黑树的监听节点数量。(仅供内核参考) 返回值:指向新创建的新红黑数的根节点epfd,失败就-1 int eopll_ctl(int epf
阅读全文
摘要:
阅读全文
摘要:poll函数原型 三个分别是:待监听的文件描述符、待监听的文件描述符对应的监听事件、传入时给0,如果满足对应事件的话返回非0, nfds:监听数组的实际有效的监听个数 超时时长:单位毫秒 代码 /****************************************************
阅读全文
摘要:多路IO转接服务器 select函数参数 select相关函数 select实现多路IO转接服务器 /************************************************************************* > File Name: server.c > A
阅读全文
摘要:高并发服务器 多进程并发服务器 多线程并发服务器 多进程并发服务器实现 server.c #include <stdio.h> #include <string.h> #include <netinet/in.h> #include <arpa/inet.h> #include <signal.h>
阅读全文
摘要:wrap.c #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <sys/socket.h> void perr_exit(const char *s) { perror(s)
阅读全文
摘要:socket套接字 网络字节序 小端法存储,高位存高地址,地位存低地址。网络字节序是大端法: sockaddr地址结构 socket模型 客户端和服务端进行通信的时候会有3个socket socket()和bind()函数 listen()和accept()函数 accept()阻塞等待客户端进行连
阅读全文
摘要:协议 分层模型 网络传输数据封装流程 以太网帧协议和ARP 目的地址和源地址是MAC地址 ARP数据格式如下: ip格式 BS和CS模型
阅读全文
摘要:线程同步概念 互斥锁 读写锁 死锁 条件变量 本身不是锁,但通常结合锁来使用 生产者消费者模型 /************************************************************************* > File Name: producer_consu
阅读全文
摘要:什么是线程 注意: ps -Lf (进程名字)可以查看进程的线程 Linux内核实现线程的原理 首先先介绍一下三级页表: 线程创建 注意编译和链接的使用使用 -pthread表示引入线程库 /******************************************************
阅读全文
摘要:概念 多个进程组在一起就是一个会话 创建会话 创建会话不能是组长进程,父进程创建子进程之后就会变成组长进程了 getsid函数和setsid函数 守护进程 创建守护进程:
阅读全文