Linux网络编程
CarmenIsOK
这个作者很懒,什么都没留下…
展开
-
(二)Linux网络编程之协议
一、协议格式 1. 以太网帧格式 – 借助mac地址完成数据报传递 arp数据报 – 根据IP获取mac地址 2.IP段格式 4位版本:ipv4 ipv6 8位生存时间(TTL):最多能经过多少跳 32位源IP地址:数据发送端地址 32位目的IP地址:数据接收端地址 3.UDP数据包格式 16位源端口 16位目的端口 3.UDP数据包格式 16位源端口: 16位目的端口: 4....原创 2019-05-30 20:06:57 · 157 阅读 · 0 评论 -
(一)Linux网络编程之网络基础
一、网络应用程序设计模式 1、C/S - client/server 优点:1.协议选用灵活 2.可以缓存数据 缺点:1.对用户安全构成威胁 2.开发工作量,调试困难 2、B/S - browser/server 优点:跨平台 缺点:只能使用http 二、协议的概念 规则:数据传输和数据解释的规则 原始协议 ----->(改善、完善)----->标准协议 典型协议:TCP/...原创 2019-05-29 18:46:59 · 167 阅读 · 0 评论 -
(三)Linux网络编程之socket套接字
socket socket编程 什么是socket? 网络通信的函数接口 封装了传输层协议 tcp udp 使用浏览器 - http协议 封装的是tcp 1. 套接字概念 socket通信 服务器端 - 被动 客户端 - 主动 socket编程 - 网络IO编程 读写操作 read/write 文件描述符 创建一个套接字,得到的是文件描述符 套接字: 创建成功,得到一个文件描述符...原创 2019-06-04 21:23:12 · 232 阅读 · 0 评论 -
(五)Linux网络编程之tcp状态转换、端口复用
一、TCP状态转换 1、2MSL 等待时长 主动关闭连接的一方,处于TIME_WAIT状态 有的地方:2分钟,30s,一般是30s(MSL) 2、半关闭 A给B发送是FIN(A调用了close函数),但是B没有给A发送FIN(B没有调用close函数) A断开了与B的连接,B没有断开与A的连接 A不能给B发送数据,A可以受B发送的数据 B可以给A发送数据 函数 int shutdown...原创 2019-07-13 15:07:44 · 600 阅读 · 0 评论 -
(六)Linux网络编程之IO多路 - select
一、IO多路转接 1、IO操作方式 阻塞等待 好处:不占用CPU的宝贵时间片 缺点:同一时刻只能处理一个操作,效率低 非阻塞,忙轮询 好处:提高了程序的执行效率 缺点:需要占用更多的CPU和系统资源 2、解决方案:使用IO多路转接技术select/poll/epoll 第一种:select/poll 【线性表】 select代收员比较懒,他只会告诉你几个快递到了,但是哪个快递,你需要挨个...原创 2019-07-13 16:25:55 · 171 阅读 · 0 评论 -
(七)Linux网络编程之IO多路 - poll
一、poll结构体 struct pollfd { int fd;//文件描述符 short events; //等待的事件 short revents;//实际发生的事件 };原创 2019-07-13 17:07:44 · 135 阅读 · 0 评论 -
(八)Linux网络编程之IO多路 - epoll
一、三个函数 typedef union epoll_data { void *ptr; int fd; uint32_t u32; uint64_t u64; }epoll_data_t; struct epoll_event { uint32_t events; epoll_data_t data; /* events: - EPOLLIN - 读 - EPOLL...原创 2019-07-13 20:00:53 · 165 阅读 · 0 评论 -
(九)Linux网络编程之udp通信
一、udp通信流程 server - 只有一个 创建套接字 //创建套接字 int fd=socket() 3.绑定本地IP和端口 bind(); 通信 接收数据:<font recvfrom原创 2019-07-14 15:59:50 · 186 阅读 · 0 评论 -
(四)Linux网络编程之多进程并发服务器、多线程并发服务器
一、三次握手 二、四次挥手 三、滑动窗口 四、错误处理函数 五、多进程并发服务器 六、多线程并发服务器原创 2019-07-12 18:40:28 · 384 阅读 · 0 评论