客户端和服务器的通信程序|学习笔记

简介: 快速学习客户端和服务器的通信程序

开发者学堂课程【TCP/IP 网络基础:客户端和服务器的通信程序】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/791


客户端和服务器的通信程序

一、TCP协议流程图

二、TCP服务器端流程

三、TCP客户端流程

四、UDP服务器端流程

五、UDP客户端流程

一、TCP协议流程图

左边是服务器端,右边是客户端。

客户端流程

注册socket,然后运用bind函数,再调用listen函数,然后调用accept函数接收客户端的一个访问请求,成功后调用recv/recvfrom,活或者send/sendto函数来进行一个数据的通信或者收发,最后用close函数去关闭socket链接。

第一部注册一个socket,可以用bind函数,也可以取消,再调用connect函数去请求服务器的连接,调用send/sendto或者recv/recvfrom去进行数据收发,最后调用close函数去关闭。

这就是数据交换收发的流程。

image.pngimage.jpeg

二、TCP服务器端流程

客户端流程

注册socket,然后运用bind函数,再调用listen函数,然后调用accept函数接收客户端的一个访问请求,成功后调用recv/recvfrom,活或者send/sendto函数来进行一个数据的通信或者收发,最后用close函数去关闭socket链接。

image.pngimage.jpeg

注意循环箭头。

三、TCP客户端流程

第一部注册一个socket,可以用bind函数,也可以取消,再调用connect函数去请求服务器的连接,调用send/sendto或者recv/recvfrom去进行数据收发,最后调用close函数去关闭。

这是数据交换收发的流程。

image.pngimage.jpeg

四、UDP服务器端流程

在数据收发之后,可以调用close函数把他关闭,这里可以进行循环使用,这个简洁一点。

image.pngimage.jpeg

五、UDP客户端流程

bind函数可选

image.pngimage.jpeg

相关文章
|
前端开发 JavaScript C++
一文彻底搞懂react hooks的原理和实现
一文彻底搞懂react hooks的原理和实现
744 92
|
存储 JavaScript API
什么是Pinia?与Vuex相比的优势
什么是Pinia?与Vuex相比的优势
424 0
|
传感器 定位技术
【DIY无人机】主控程序
如何自己动手制作一个飞控?
1033 1
【DIY无人机】主控程序
|
运维 前端开发 调度
|
Web App开发 算法 安全
详细讲解https证书openssl公钥私钥以及ssh公钥私钥的生成以及使用
详细讲解https证书openssl公钥私钥以及ssh公钥私钥的生成以及使用
1421 0
详细讲解https证书openssl公钥私钥以及ssh公钥私钥的生成以及使用
|
存储 弹性计算 架构师
游戏上云成标配 云服务器该怎么选?
三大关键点:性能、稳定性和弹性伸缩能力。
游戏上云成标配 云服务器该怎么选?
|
存储 tengine 算法
【端智能】MNN CPU性能优化年度小结
2020年5月,MNN发布了1.0.0版本,作为移动端/服务端/PC均适用的推理引擎,在通用性与高性能方面处于业界领先水平。
【端智能】MNN CPU性能优化年度小结
|
SQL 机器学习/深度学习 存储
三分钟了解大数据技术发展史
梳理下大数据技术发展
1213 0
|
Perl 容器 存储
使用阿里云CSI Plugin实现LVM数据卷动态扩容
概要 LVM存储类型为本地存储,并非可随着Pod迁移的可插拔的分布式存储方案,如果Pod期望在多个节点上使用相同的lvm卷,则需要在每个节点上都创建相同名字的lvm卷,这样Pod调度的时候可以继续使用相同的lvm卷名进行挂载。
12347 0
|
异构计算 机器学习/深度学习 算法
低延迟高性能AliFPGA亮相HotChips30
衡量一个处理器在目标场景的计算能力,需综合评估特定延迟下所能达到的吞吐FPS(Frame per Second)能力,这才是机器学习处理器选型时需要考虑的“场景内真实计算性能”。因此,对于机器学习处理器来说,同时达到计算的低延迟和高吞吐(FPS)显得极为重要。
1825 0