客户端-服务器架构、Socket、TCP/UDP简介

【数字IC验证快速入门】2、通过一个SoC项目实例,了解SoC的架构,初探数字系统设计流程 SoC是基于通用处理器这样的思路进行设计的,与PC设计思路一样。即通用处理器是由 CORE + MEM 两部分组成,修改软件来实现不同的功能,电脑还是同一个电脑,硬件组成还都是一样的。SoC架构图四大组成部分:SoC总的架构图如下:对于核来讲,现在主流的核有三类:架构图,左上角为SoC系统的核,此处使用的是ARM 公司的Cortex-M3/M4内核。同时,I-Code表示指令代码,D-Code表示数据代码。JTAG用来调试芯片,下载调试程序使用。架构图,中间部分为SoC系统的存储,此处包含PFlash和SR 阅读详情

假如有一天你丢失了银行卡
你要到银行去找工作人员(服务器)
排队挂号等待(FCFS原则)
轮到你了,就去柜台和工作人员沟通(建立连接)
对工作人员说“我卡丢了,要挂失”(向服务器提出请求)
工作人员会帮你办理挂失手续(提供服务,返回响应)
办理完之后你就可以离开(一个事务结束后断开服务)
工作人员继续为下一个客户服务(服务器继续等待下一个客户端的请求)

以上便是生活中的客户端-服务器架构

总结一下:

  1. 服务器是个工作狂,它会一直处于工作状态,等待客户的到来,即使当前没有一个客户
  2. 服务器可以是硬件, 也可以是软件。硬件服务器:打印机,文件服务器。软件服务器:Web服务器,数据库服务器,窗口服务器(远程控制桌面)

上面介绍了生活中的客户端-服务器架构。那么,在网路中,我们是如何实现这种架构的呢?

我们知道,在生活中如果你想提供服务的话,你得有个门面,再不济也得有个小摊吧。要不然客户怎么知道你在哪?怎么跟你联系?同理,网络上我们也要有这么一个摊位,我们叫通讯端点(Socket)。等我们摆好摊了之后,就可以等待客户的到来了(客户端通讯端点的连接)。那么客户怎么和我联系呢?现实生活中有2种方式

  1. 我可以把摊位地址发布出来,让客户自己来找
  2. 我可以留个联系方式,让客户打电话过来

网络上,我们采用类似第二种,我留个电话(服务端Socket),让客户的电话(客户端Socket)打进来。这样我们就可以沟通,为客户提供服务了。
关于这个电话(Socket),也有2种机型

  1. 老人机:和家人打打电话 (AF_UNIX 基于文件型,进程间的通话)
  2. 智能机:可以上网和陌生人通话 (AF_INET基于网络型)

通话方式也有两种:

  1. 高清模式TCP:SOCK_STREAM(可靠,有序,不重复,速度慢,拆分发送)
  2. 流畅模式UDP:SOCK_DGRAM(不可靠,不按顺序,重复,整体发送,速度快)
Socket 简介与 Java Socket 编程示例 基本概念:Socket可以被视为网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点。它是应用程序通过网络协议进行通信的接口,上联应用进程,下联网络协议栈。物理与逻辑层面:在物理层面上,Socket可能并不真实存在,它更多的是一个逻辑上的概念。但在网络编程中,Socket是不可或缺的组成部分。Socket是网络通信中的核心组件之一,它提供了应用层进程之间进行数据交换的机制。通过Socket,不同主机上的应用进程可以建立连接并传输数据。 阅读详情

相关推荐

C#基础TCP Socket编程:客户端与服务端开发

在计算机网络领域,协议是确保数据能够准确、有效地在不同系统之间传输的一套规则和标准。TCP/IP协议栈是互联网上最为广泛使用的协议族,而TCP(传输控制协议)则是该协议栈中的重要组成部分,专为稳定性和可靠性设计。Socket(套接字)通信模型是网络编程的基础,它提供了一种标准的API接口,使得开发者可以开发出可以在不同操作系统上运行的网络应用程序。Socket模型基于客户机-服务器架构,允许跨网络的计算机之间通过网络进行双向通信。

weixin_31185473的博客 1325

深入理解Socket编程:服务器与客户端设计实战

Socket编程是网络应用程序开发的基础,它允许应用程序之间通过网络进行数据交换。Socket作为通信端点,实质上是计算机网络通信的API接口,能够实现不同主机上的应用程序间的数据交互。

weixin_35732273的博客 966

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第七讲)

默认是第一种键盘模式,当需要切换模式,进入到ta_event_cb函数修改模式,下面代码以数字模式举例子lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER);在该界面中可以设置键盘文字的大小和文本类型,最下方判断键盘是否支持中文输入(中文输入,当汉字库不够大时,用户点击中文输入会少很多字)。//当LV_USE_KEYBOARD为1时启用虚拟键盘,LV_USE_ZH_KEYBOARD为1时支持中文输入。随后在系统设置界面中点击项目选项,选择显示键盘。

weixin_38828382的博客 1416

Linux文件操作四剑客

① /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 yyyy-MM-dd / yy-MM-dd 格式。⑥“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$” //正浮点数。

wuds_158的博客 1611

infercnv的实操

摘要: 博主在infercnv分析中遇到执行困难,外包服务不可靠(未按要求使用HMM方法)。通过优化策略(逐样本处理、精简细胞至1000个、固定随机种子)解决了运行问题,但HMM功能仍无法实现。最终参考Cell期刊标准设置阈值完成分析,后续将继续更新进展。该案例凸显了生物信息分析中自主优化的重要性。(150字)

xiaoyusang的博客 308

C# Socket通信从入门到精通(14)——多个异步UDP客户端C#代码实现(史上最全)

本文详细介绍了Socket通信中多个异步Udp客户端功能的实现、介绍如何使用多个客户端与多个服务器进行数据的交互,包含连接服务器、断开服务器、发送数据、读取数据、C#代码实现,由高级工程师多年经验总结而成,绝对干货!

qq_34059233的博客 1982

SKILL 是什么?怎么做?五分钟 带你从入门到精通

skill-creator 是 Anthropic 官方开源的“元技能”——一个专门用来创建 Skill 的 Skill。你只需要用自然语言描述想要什么功能,它会自动生成。从更宏观的视角看,Skills 的出现标志着 AI 编程的一次范式转变。在传统的 AI 编程中,代码是确定性的:1 是 1,2 是 2。但到了大模型时代,代码变得不确定——你不知道模型会输出什么,不知道它会不会突然删掉几行代码。这种不确定性让很多开发者感到不安。Skills 把这套逻辑又拉了回来。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 643

【020】C++ 动态内存管理解析:new 和 delete 的正确使用

C++中的动态内存分配是在程序运行时根据需要进行内存空间的分配和释放,与静态内存分配相比,具有更大的灵活性和适应性。动态内存分配可以通过new和delete或者malloc()和free()等函数实现。在程序运行时无法确定所需的内存大小。需要在多个函数之间共享数据,并且数据可能被频繁地创建和销毁。静态数组无法满足需求,例如需要支持可变长度数组。如果在动态分配内存后忘记了释放它,则会导致内存泄漏。为避免内存泄漏,可以使用智能指针或手动管理内存的方式来释放动态分配的内存。

Lion_Long的博客 1471

FLUENT 软件中design modeler网格划分后,导出失败:系统显示“在网格文件导出过程中出现异常。请将数据发送给您的技术支持供应商。”...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1474

如何利用Dpabi,AFNI,FSL软件计算种子点的功能连接?

fsl_glm 得到的是线性回归系数(beta coefficient),由于在自变量和因变量标准化(均值为 0,标准差为 1)的情况下,简单线性回归的回归系数和皮尔逊相关系数是相同的,因此这是一种间接的方法。(3)上一步得到的 PCC.nii.gz 文件是 Harvard-Oxford 概率模板中的后扣带回,每个体素中的数值(1-100)表示该体素属于 PCC 的概率,反映 PCC 在不同被试中的变异大小,也表示我们对于某个体素属于PCC 的信心。接下来,我们来聊聊功能连接在数据处理里的具体应用。

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 7842

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

下一篇: 创建Socket
PythonKidDz
博客等级 码龄10年 7粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值