概述 优点: 开源 精简 支持跨平台 专注于网络通信 源码包安装步骤:可参考具体README文件 ./configure检查安装环境,生成makefile make生成.o和可执行文件 sudo make install 将必要的资源拷贝至系统指定目录 进入sample目录,运行demo验证是否安装成功 编译使用库的.c时,需要加-levent选项…
线程池并发服务器 为什么要引入线程池,不直接用之前的多线程并发? 因为多线程并发要频繁地对线程进行创建与销毁(一旦有客户端传来需求,就创建一个新线程,通信结束就立刻销毁该线程),这会占用大量的CPU时间并导致不必要的系统开销 相关结构体 线程池结构体:描述线程池相关信息 pthread_mutex_t lock; /* 用于锁住本结构体 */ pt…
多进程并发服务器 思路 ①Socket(); 创建监听套接字lfd(首字母大写是因为调用的自封装函数) ②Bind(); 绑定地址结构 Strcut sockaddr_in addr; ③Listen(); 设置监听上限 ④ while (1) { cfd = Accpet(); //接收客户端连接请求 pid = fork(); if(pid =…
预备知识 网络套接字socket 属于Linux特殊文件类型(管道、套接字、字符设备、块设备) 一个文件描述符指向一个套接字(该套接字内部由内核借助两个缓冲区实现) 在通信过程中, 套接字一定是成对出现的 类比前面进程通信中的管道:一个管道掌控着两个文件描述符和一个缓冲区,而一个套接字掌控着一个文件描述符和两个缓冲区 ps:图中画的不恰当,数据流通…
协议 协议:从应用角度讲,协议就是一组规则,用于数据的传输和解释 典型协议 应用层:HTTP、FTP、NFS、SSH、telnet 传输层:TCP、UDP 网络层:IP、ICMP、IGMP 链路层:以太网帧协议、ARP 网络应用程序设计模式 c/s模式: 客户端服务器端架构 client/server 优点: 可以缓存数据,提高传输效率 协议选择灵…