网络编程学习笔记
文章平均质量分 94
WULI_LIN
这个作者很懒,什么都没留下…
展开
-
TCP/IP协议深度解析
TCP如何有序性的ARPTCP的拥塞控制TCP的半连接队列与全连接队列TCP粘包与分包网线断了, TCP怎么处理TCP的长连接与短连接TCP的11个状态迁移send返回正数, 是不是成功?阻塞与非阻塞, send/recv, -1如何取到一帧完整的数据包raw socketnetmapdpdk1 网络协议栈1.1 OSI模型物理层: 传输的光电信号数据链路层: 数字信号网卡: 将数字信号转换为光电信号(AD/DA), 因此不属于协议栈的那一层1.2 协议栈是什.原创 2021-05-15 23:27:52 · 458 阅读 · 13 评论 -
网络IO的阻塞/非阻塞与同步/异步
在学习网络IO的时候总是被阻塞/非阻塞, 同步/异步搞得团团转, 本文是自己对这部分的一些学习心得IO模型小明去打水杯子:用户空间水:数据饮水机:内核空间阻塞/非阻塞IO小明拿杯子去打水, 饮水机内不一定有水, 当饮水机没水他就在原地等待, 直到饮水机有水, 阻塞IO他就先离开, 等一会儿再来看看饮水机有没有水, 非阻塞IOrecv时可设置成阻塞和非阻塞阻塞时, 会一直等待, 直到有数据了才往下执行非阻塞时, 当没有数据时, 便会直接返回, 往下执行IO复用小明厌倦了总是原创 2020-12-31 14:32:48 · 178 阅读 · 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 · 285 阅读 · 1 评论 -
Linux下TCP服务器学习笔记
流程(模型)1.定义套接字:intint 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 · 263 阅读 · 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 · 300 阅读 · 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 · 328 阅读 · 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 · 615 阅读 · 0 评论