Linux网络编程
文章平均质量分 79
伍粟
菜鸟码农
展开
-
7、web服务器(linux网络编程)
1 web服务器总体介绍: 使用浏览器作为客户端访问web服务器; 使用到的知识总结: socket编程: socket setsockopt bind listen read write send recv close 编写网络服务器常用的模型有哪些: 多进程版本, 多线程版本 多路IO复用:select poll epoll 第三方库: libevent TCP/IP四层模型: 应用层--->传输层---->网络层---->数据链路层 本次案例所使用的协议: TCP+h原创 2021-05-17 11:21:11 · 304 阅读 · 0 评论 -
6、libevent开发基本案例(linux网络编程)
//获取libevent支持的方法和当前系统使用的方法 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <event2/event.h> int main() { //获取当前系统支持的方法有哪些 //const char **event_get_supported_methods(void); const char **p = event_get_supporte原创 2021-05-13 15:42:36 · 379 阅读 · 0 评论 -
5、线程池、本地socket、offset函数、UDP通信(linux网络编程)
线程池 什么是线程池? 是一个抽象的概念, 若干个线程组合到一起, 形成线程池. 为什么需要线程池? 多线程版服务器一个客户端就需要创建一个线程! 若客户端太多, 显然不太合适. 什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 实现的时候类似于生产者和消费者. 线程池和任务池: 任务池相当于共享资源, 所以需原创 2021-05-11 18:31:55 · 256 阅读 · 0 评论 -
4、poll、epoll、epoll反应堆(linux网络编程)
wrap.h #ifndef __WRAP_H_ #define __WRAP_H_ #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> #include <strings.h>原创 2021-05-06 09:56:26 · 217 阅读 · 0 评论 -
3、TCP状态转换图、端口复用、半关闭状态、心跳包、select服务器(linux网络编程)
TCP状态转换图: 1 三次握手过程: 客户端: SYN_SENT—connect() 服务端: LISTEN–listen() SYN_RCVD 当三次握手完成后, 都处于ESTABLISHED状态 2 数据传输过程中状态不发生变化, 都是ESTABLISHED状态 3 四次挥手过程: 主动关闭方: FIN_WAIT_T FIN_WAIT_2 TIME_WAIT 被动关闭方: CLOSE_WAIT LAST_ACK 思考题 1 SYN_SENT状态出现在哪一方? 客户端 2 SYN_RC原创 2021-05-04 20:59:09 · 240 阅读 · 1 评论 -
2、TCP、多进程并发、多线程并发(linux网络编程)
三次握手和四次挥手的过程都是在内核实现的. 三次握手 通信的时候不再需要SYN标识位了, 只有在请求连接的时候需要SYN标识位. 传输数据的时候的随机序号seq就是最近一次对方发送给自己的ACK的随机序号值, 而发给对方的ACK就是上次刚刚发给对方的ACK的值. 四次挥手 函数封装思想 函数封装的思想-处理异常情况 结合man-page和errno进行封装. 在封装的时候起名可以把第一个函数名的字母大写, 如socket可以封装成Socket, 这样可以按shift+k进行搜索, shift+k搜索函数原创 2021-05-01 20:03:58 · 408 阅读 · 0 评论 -
1、分层模型、协议、网路基础(linux网络编程)
协议: 协议是双方共同指定的一组规则, 在网络通信中表示通信双方 传递数据和解释数据的一组规则. OSI 7层模型: 物数网传会表应 应用层: 主要就是应用程序, ftp ssh email http 表示层: 进行编解码和翻译工作 会话层: 建立会话和保持会话 传输层: 定义了端端端的传输, TCP UDP协议 网络层: 定义了点到点的传输, IP协议----路由器 数据链路层: 数据校验, 定义了数据格式--帧, ARP协议 RARP协议 物理层: 通信介质-双绞线, 光纤 调制解调器modemn原创 2021-04-30 08:54:44 · 191 阅读 · 0 评论