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

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

开发者学堂课程【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

相关文章
|
缓存 关系型数据库 MySQL
MySQL并发支撑底层Buffer Pool机制详解
【10月更文挑战第18天】在数据库系统中,磁盘IO操作是性能瓶颈之一。为了提高数据访问速度,减少磁盘IO,MySQL引入了缓存机制。其中,Buffer Pool是InnoDB存储引擎中用于缓存磁盘上的数据页和索引页的内存区域。通过缓存频繁访问的数据和索引,Buffer Pool能够显著提高数据库的读写性能。
574 2
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
407 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
SQL 自然语言处理 安全
|
机器学习/深度学习 TensorFlow 算法框架/工具
TensorFlow 1.x 深度学习秘籍:1~5(1)
TensorFlow 1.x 深度学习秘籍:1~5
336 0
|
机器学习/深度学习 存储 人工智能
AI 绘画Stable Diffusion 研究(十五)SD Embedding详解
AI 绘画Stable Diffusion 研究(十五)SD Embedding详解
1796 1
|
算法 安全 物联网
一种更优雅的蓝牙配对技术 - Cross-transport key derivation (CTKD)
蓝牙CTKD是蓝牙4.2版本引入的一种交叉传输密钥派生的安全机制,全称 Cross-transport key derivation,主要用在蓝牙双模设备上,它可以跨越BLE和BT的边界,通过将BLE配对生成的LTK转化成BT配对的LinkKey,从而直接实现BT的配对,当然也可以通过BT配对生成的LinnkKey转化成BLE的LTK来实现BLE的配对,目前我们主要研究和使用前者。通过CTKD可以通过一次配对将BT和BLE两个链路都配对上,从而提升蓝牙双模设备的配对体验。
2311 0
一种更优雅的蓝牙配对技术 -  Cross-transport key derivation (CTKD)
震撼!阿里首次开源 Java 10万字题库,Github仅一天星标就超60K
众所周知“金三银四”是程序员找工作、跳槽最重要的月份。现在只剩下三个月的时间可以准备。随着行业的发展程序员面试也越来越难,面试中都是7分的能力,再加上3分的技巧; 对于应聘者,重中之重的就是简历,面试前一定要将最拿手和最能吸引面试官的技能在简历中展示出来;面试中,一定要有个平稳的心态,回答时要有条理、有头有尾,正确地回答面试官的问题,如果答错了也不要慌乱,坦然接受犯错,顺便虚心的请教面试官,能为下次面试做准备,也有很大的可能给面试官留下好印象,让面试官忽略你这个小失误;
|
存储 云安全 运维
阿里云认证介绍 - 线上考试报名指南(ACA/ACP/ACE)
阿里云认证:即阿里云云计算专业认证(Alibaba Cloud Certified Professional)是面向使用阿里云云计算产品的架构、开发、运维类人员的专业技术认证,主要涉及阿里云的计算、存储、网络、安全类的核心产品。
|
大数据
PageAdmin CMS网站建设教程:自动任务执行时间设置
PageAdmin Cms发布文章时候有一个上线时间设置和下线时间设置,网站编辑人员可以利用这个功能来实现定时发布,在信息发布界面,如下图: 设置后就会自动加入定时任务中,注意这个功能需要再系统设置>>自动任务执行间隔中设置时间,参考相关文档。
1694 0
|
安全 Windows
“永恒之蓝”勒索软件样本分析及一线案例处置分享
1. 样本收集 网上收集整理了已有的样本MD5,下载地址: https://gist.github.com/Blevene/42bed05ecb51c1ca0edf846c0153974a 同时结合US-CERT收集的样本列表: https://www.us-cert.gov/sites/default/files/ALERT_TA17-132A.xlsx 2. 样本分析 2.1 样本基本分析结果 大部分样本都不容易找到,但可以Hybrid Analysis搜索到样本相关信息,从已有列表中除去重复和非主程序样本以及无详细信息MD5样本共35条。
7666 0