linux-网络编程
文章平均质量分 96
琰婧
努力学习。
展开
-
linux-线程池、UDP通信与本地socket通信
1 学习目标了解线程池模型的设计思想能看懂线程池实现源码掌握tcp和udp的优缺点和使用场景说出udp服务器通信流程说出udp客户端通信流程独立实现udp服务器代码独立实现udp客户端代码熟练掌握本地套接字进行本地进程通信2 线程池什么是线程池?是一个抽象的概念,若干个线程组合到一起, 形成线程池。为什么需要线程池?多线程版服务器一个客户端就需要创建一个线程! 若客户端太多, 显然不太合适。什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行原创 2021-07-31 10:15:33 · 871 阅读 · 0 评论 -
linux-多路IO-poll与多路IO-epoll
文章目录1 学习目标2 多路IO-poll3 多路IO-epoll3.1 int epoll_create(int size);3.2 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);3.3 int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);3.4 代码思路3.5 编写代码测试3.6 相关总结4 进阶epoll4原创 2021-07-29 20:59:07 · 245 阅读 · 0 评论 -
linux-TCP状态转换图、端口复用、半关闭状态、心跳包与高并发服务器模型--select
文章目录1 内容回顾2 学习目标3 TCP状态转换图4 端口复用5 半关闭状态5.1 shutdown函数5.2shutdown和close的区别6 心跳包(检测网络连接正常)6.1 方法16.2 方法27 高并发服务器模型--select7.1 void FD_CLR(int fd, fd_set *set);7.2 int FD_ISSET(int fd, fd_set *set);7.3 void FD_SET(int fd, fd_set *set);7.4 void FD_ZERO(fd_set原创 2021-07-28 17:51:49 · 517 阅读 · 0 评论 -
linux-三次握手和四次挥手、滑动窗口、函数封装思想与高并发服务器
文章目录1 内容回顾2 学习目标3 三次握手和四次挥手4 滑动窗口4.1 mss和MTU5 函数封装思想6 高并发服务器1 内容回顾数据的通信过程: 就是发送之前层层打包, 对方收到之后再层层解包.7层模型和4层模型:协议格式: TCP和UDPUDP: 端口TCP: 端口, 有序号和确认序号, 目的是使数据有序且不丢失.IP: 32位IP, 网络字节序, TTL(下一跳), TTL的目的是防止网络阻塞.socket概念: 一个文件描述符, 2个缓冲区, 2个队列服务端的编码流程:创建原创 2021-07-27 15:41:35 · 342 阅读 · 0 评论 -
linux-网络基础概念与socket编程
文章目录学习目标1 网络基础概念1.1 协议1.2分层模型1.3 数据通信过程1.4 网络应用程序的设计模式1.5 以太网帧格式1.6网络名词术语解析(自行阅读扫盲)2 SOCKET编程2.1 socket编程预备知识2.2 socket编程主要的API函数介绍2.2.1 int socket(int domain, int type, int protocol);2.2.2 int bind(int sockfd, const struct sockaddr *addr, socklen_t addrle原创 2021-07-26 16:24:21 · 583 阅读 · 0 评论