TCP和UDP的区别

1.tcp是通过accpet和客户端建立连接的,建立新的描述符

cpp 复制代码
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
    功能:等待客户端连接
    sockfd:受监听的socket描述符
    addr:获取客户端的地址
    addrlen:既是输入,也是输出
        1、既告诉accept函数当前计算机地址结构体的字节数2、同时也能获取客户端的地址结构体字节数
    返回值:连接成功返回一个新的连接后的socket描述符,连接失败返回-1
    注意:如果没有连接,则阻塞

而udp不需要

直接使用函数进行数据的交换

2.函数的区别

cpp 复制代码
    TCP:的连接四个参数
    ssize_t send(int sockfd,const void *buf, size_t len, int flags);
    功能:TCP协议通信时专用的数据发送函数
    sockfd:连接成功的socket描述符
    buf:待发送数据的首地址
    len:要发送的字节数
    flags:
        0   阻塞发送
        1   不阻塞发送
    返回值:成功发送的字节数
            -1 出现错误
            0  连接断开
-------------------------------------------------------------------------
    UDP:6个参数,前四个一样,后两个就是dcp直接通信的地址,而tcp需要连接才能传输
    ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
    功能:UDP协议接收数据
    sockfd:socket描述符
    buf:存储接收数据的缓冲区内存首地址
    len:缓冲区的字节数
    flags:是否阻塞 一般写0阻塞即可
    src_addr:用于存储发送者的地址
    addrlen:既是输入,也是输出
        1、既告诉函数当前src_addr结构体的字节数
        2、同时也能实际接收到发送者的地址结构体字节数
    成功:成功接收到的字节数
        0   通信关闭
        -1  出现错误

1.tcp适合高精度的传输,这边传输那边要同意才收到,//而udp不需要,另一边同意,直接传输,不在线就收不到,但是已经传输了,

2.tcp(传输控制协议)适合网页浏览,邮件发送,连接数据库,文件传输

udo适合 适合会议视频,视频流媒体,在线游戏,语音通话,传感器数据

相关推荐
七夜zippoe27 分钟前
OpenClaw 实战案例:数据分析平台构建
服务器·网络·数据分析·openclaw·平台构建
儒雅的烤地瓜1 小时前
计算机网络 | 路由器局域网(内网)IP和外网(公网)IP的区别与联系
网关·tcp/ip·智能路由器·ip·外网·内网·nat技术
AI科技星2 小时前
拓扑生命系统确定性理论:基于32维流形的遗传密码起源与衰老动力学( 中英双语顶刊终稿·标准数学符号)
开发语言·网络·人工智能·算法·机器学习·乖乖数学·全域数学
想你依然心痛2 小时前
RT-Thread组件生态:SAL网络框架与AT组件实战——网络抽象、AT指令
网络·arm开发·at·sal
2401_841585182 小时前
防破 · 稳定 · 易用——文心云网络验证,为您的软件商业化保驾护航
网络
星恒讯工业路由器2 小时前
公网IP、NAT、端口映射:外网访问家里的“通关攻略”
网络·智能路由器·信息与通信·nat·端口映射·公网ip
前端炒粉3 小时前
个人简历面经总结二
前端·网络·vue.js·react.js·面试
碎碎念_4923 小时前
ACL包过滤、NAT技术、广域网协议
服务器·网络·安全·acl·nat
techdashen3 小时前
把正确性藏进类型里:从 Go 的 io.Reader 到 Rust 的 API 设计
网络·golang·rust
FPGA小迷弟3 小时前
vivado中的AXI Interconnect到底应该怎么用,他的底层原理是什么,一篇文档全部理清楚!!!
网络协议·tcp/ip·fpga开发·verilog·fpga