网络编程学习笔记
文章平均质量分 94
WULI_LIN
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
TCP/IP协议深度解析
TCP如何有序性的 ARP TCP的拥塞控制 TCP的半连接队列与全连接队列 TCP粘包与分包 网线断了, TCP怎么处理 TCP的长连接与短连接 TCP的11个状态迁移 send返回正数, 是不是成功? 阻塞与非阻塞, send/recv, -1 如何取到一帧完整的数据包 raw socket netmap dpdk 1 网络协议栈 1.1 OSI模型 物理层: 传输的光电信号 数据链路层: 数字信号 网卡: 将数字信号转换为光电信号(AD/DA), 因此不属于协议栈的那一层 1.2 协议栈是什.原创 2021-05-15 23:27:52 · 566 阅读 · 13 评论 -
网络IO的阻塞/非阻塞与同步/异步
在学习网络IO的时候总是被阻塞/非阻塞, 同步/异步搞得团团转, 本文是自己对这部分的一些学习心得 IO模型 小明去打水 杯子:用户空间 水:数据 饮水机:内核空间 阻塞/非阻塞IO 小明拿杯子去打水, 饮水机内不一定有水, 当饮水机没水 他就在原地等待, 直到饮水机有水, 阻塞IO 他就先离开, 等一会儿再来看看饮水机有没有水, 非阻塞IO recv时可设置成阻塞和非阻塞 阻塞时, 会一直等待, 直到有数据了才往下执行 非阻塞时, 当没有数据时, 便会直接返回, 往下执行 IO复用 小明厌倦了总是原创 2020-12-31 14:32:48 · 283 阅读 · 0 评论 -
reactor 模型
reactor 模型 主要框架: 当有事件发生时,调用对应的回调函数(数据接受/发送,处理); reactor 会一直跑 run,即一直处在 epoll_wait 中等待事件的到来; 当有事件到来,会调用相应事件的回调函数(之前的事件注册); 以下例子利用reactor模型实现接受客户端消息,并将消息发回给客户端: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <s原创 2020-11-28 00:03:11 · 465 阅读 · 1 评论 -
Linux下TCP服务器学习笔记
流程(模型) 1.定义套接字:int int sfd; // 监听套接字 int cfd; // 传输套接字 2.创建tcp协议套接字:socket(); int socket(int domain, int type, int protocol); domain: 通信域 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sOzCZetu-1604814834270)(en-resource://database/1190:1)] type: 类型 [外链原创 2020-11-08 14:06:03 · 383 阅读 · 2 评论 -
linux下编写tcp服务器学习笔记
1.定义套接字:int int listenfd; // 监听套接字 int sockfd; // 传输套接字 2.创建tcp协议套接字:socket(); listen = socket(AF_INET, SOCK_STREAM, 0); 3.绑定服务器IP和端口:bind(); // 定义 struct sockaddr_in sockva原创 2017-09-25 16:40:17 · 397 阅读 · 0 评论 -
linux下编写tcp客户端学习笔记
1.定义套接字:int int sockfd; // 通信套接字 2.创建tcp服务套接字:socket(); sockfd = socket(AF_INET, SOCK_STREAM, 0); 3.连接指定服务器:connect(); // 设置端口和IP struct sockaddr_in servaddr; bzero(&servaddr原创 2017-09-25 17:23:38 · 433 阅读 · 0 评论 -
linux下udp学习笔记
1.定义套接字:int int sockfd; 2.创建udp套接字:socket(); sockfd = socket(AF_INET, SOCK_DGRAM, 0); 3.绑定端口:bind(); // 定义 struct sockaddr_in server; // 赋值 bzero(&server, sizeof(server原创 2017-09-26 17:18:35 · 716 阅读 · 0 评论
分享