【Airplay_BCT】Bonjour conformance tests苹果IOT
从Airplay开始,接触到BCT,这是什么?被迫从安卓变成ios用户和开发。。。开始我的学习之旅,记录成长过程,不定时更新
Bonjour
下面是苹果官网关于bonjour的解释
Bonjour, also known as zero-configuration networking, enables automatic discovery of devices and services on a local network using industry standard IP protocols. Bonjour makes it easy to discover, publish, and resolve network services with a sophisticated, easy-to-use programming interface that is accessible from Cocoa, Ruby, Python, and other languages.
Bonjour,也称为零配置网络,使用行业标准IP协议实现本地网络上设备和服务的自动发现。Bonjour通过一个复杂、易于使用的编程界面,可以从Cocoa、Ruby、Python和其他语言访问,从而轻松发现、发布和解析网络服务。
大概就是说:bonjour是苹果的一个连接网络,从一开始的网络连接到现在的专用bonjour连接,实现IOT物联网的
Apple 的一些产品,比如 homtkit、smart home 最初是通过无线有线网络连接的,而Bonjour 是他们之间的连接协议,只有满足Bonjour 的条件才能正常的通过网络进行控制操作。
Bonjour 作为一种协议,包含了现在大火的 IOT 概念。
Apply的每一款产品只有通过了BCT的测试验证后,才可以证明每个产品设备间可以自由连接和控制。
诸如手机可以操控TV、灯、音响之类,他们背后的原理都是通过Bonjour 来控制的。
如果开发Apply的产品都是需要涉及到BCT验证的。
在这里简单介绍下homtkit、smart home
HomeKit
Homekit 是苹果公司出品的智能家居系统,设置好后能在任何地方设置和控制家里所有智能家居设备。现在很多家电都加入了智能功能,但经常一个家电就是一个 app,例如空调有自己的 app、指纹锁有自己的 app、各种灯也有自己的 app。
而成套的智能家居方案就解决了这个问题,以 HomeKit 来说,在购买决策阶段就可以在支持 Homekit 的产品里挑选,例如 LG 的电视、米家的指纹锁、Aqara 的智能开关,这样以后不用打开乱七八糟的 app,直接点亮 iPhone 下拉菜单栏就能操控常用设备了,或者直接喊一句 Siri 来操控,特别方便。
其它的苹果产品如 Apple Watch、Apple Tv 和 Homepods 也都可以控制家里的智能设备,所以如果你有若干苹果产品,选择 Homekit 是不错的选择。
Smart Home
下面是来自Investopedia的解释
A smart home refers to a convenient home setup where appliances and devices can be automatically controlled remotely from anywhere with an internet connection using a mobile or other networked device. Devices in a smart home are interconnected through the internet, allowing the user to control functions such as security access to the home, temperature, lighting, and a home theater remotely.
智能家居是指一种方便的家庭设置,其中可以使用移动或其他联网设备通过互联网连接从任何地方远程自动控制电器和设备。智能家居中的设备通过互联网相互连接,允许用户远程控制家庭安全访问、温度、照明和家庭影院等功能。
smart home的功能和homekit类似,小伙伴们感兴趣可以自己自行深入学习,这里仅做介绍
Bonjour零配置网络架构支持在局域网或广域网上发布和发现基于TCP/IP的服务。本文档从较高的层次描述了Bonjour架构,并简要描述了可用的Bonjour API。
Tips:有关API级别的更详细内容(包括代码片段),请阅读《DNS服务发现编程指南》或《NSNetServices和CFNetServices编程指南》。
Bonjour是苹果实现的一套零配置网络协议。Bonjour旨在让用户更容易进行网络配置。
例如,Bonjour允许您将打印机连接到网络,而无需为其分配特定的IP地址或手动将该地址输入每台计算机。通过零配置网络,附近的计算机可以发现其存在并自动确定打印机的IP地址。如果该地址是一个动态分配的地址,并且发生了变化,那么他们可以在将来自动发现新地址。
应用程序还可以利用Bonjour自动检测网络上应用程序(或其他服务)的其他实例。例如,两个运行iOS照片共享应用程序的用户可以通过蓝牙个人区域网络共享照片,而无需在任一设备上手动配置IP地址。
Bonjour提供高效的服务发现
Bonjour协议支持使用多播DNS(mDNS)以及在需要时链接本地寻址,以高效和稳健的方式发布和发现服务。
关于Bonjour的更多概念link
Bonjour概念
Bonjour是苹果提交给IETF的一套IP零配置网络协议,作为正在进行的标准创建过程的一部分。本节介绍Bonjour解决的问题及其解决方法。
为什么是Bonjour?
在过去的二十年中,计算机逐渐从AppleTalk、IPX和NetBIOS等特定于平台的协议过渡到互联网协议(IP)。大多数计算机和其他网络设备都使用TCP/IP进行通信。然而,在这一过渡过程中,一部分功能丧失了将设备添加到本地网络,然后从计算机和网络上的其他设备连接到这些设备的能力,所有这些都几乎没有配置。
为了使IP正常工作,每个设备都需要一个唯一的地址,无论是静态分配还是由DHCP服务器动态分配。动态分配的地址可以更改,因此如果没有Bonjour,打印机和其他设备必须手动配置静态地址,以便网络上的计算机可以访问它们。然后,网络管理员必须配置DNS服务器,以便计算机用户不必通过IP地址连接到打印机。因此,看似次要的任务需要大量的配置。因为不适合传统网络管理员角色的人通常会建立网络家庭,通过共享路由器将他们的笔记本电脑连接到互联网,例如,这种配置级别并不实用。
即使在IT专业人员运行的托管网络中,也没有必要为打印机等设备手动配置。人们希望能够插入打印机,将两台笔记本电脑连接在一起,或者在本地网络上查找文件服务器或游戏服务器,而不必浪费时间尝试正确配置。
为了支持这一点,人们需要一种简单可靠的方式来配置和浏览IP网络上的服务。他们希望发现可用的服务并从列表中选择一个,而不必事先知道每个服务的名称或IP地址。IP拥有这种能力符合每个人的利益。这正是Bonjour提供的功能。
示例:零配置
零配置IP网络具有很大的潜力。考虑一下打印的日常任务。在计算机或iOS设备上配置打印机后,只需选择应用程序的“打印”命令即可。
把你的笔记本电脑带到客户的公司或邻居家,试着打印一些东西。如果他们有一台支持Bonjour协议的打印机,打印就像在本地网络上一样简单。要打印,请将笔记本电脑连接到客户端的Wi-Fi接入点,然后启动笔记本电脑。或者启动你的笔记本电脑,它会立即找到邻居的家庭无线网络。无论哪种方式,您的笔记本电脑都会自动发现任何可用的打印机。打开文档,选择“打印”命令,“打印”对话框中将显示所有可用的打印机。选择打印机,单击“打印”,文档将打印。
或者说你想和朋友玩网络游戏。你打开游戏,你朋友的游戏副本立即在网络上看到你的副本。或者,如果你在两台电脑上有一个音乐共享应用程序,这些程序本身可以发现彼此并立即交换歌曲列表。类似地,如果您有共享文件夹或打开了个人Web共享,您的共享文件和网页将立即可供其他人使用。
该场景如图1-1所示。在步骤1中,打开邻居家中的笔记本电脑,笔记本电脑要么从路由器中的DHCP服务器获取地址,要么在没有DHCP服务器的情况下为自己分配一个可用的本地地址。在步骤2中,将查询网络中的可用打印机,以便在打开“打印”对话框时,列出邻居的打印机。最后,在步骤3中,您打开计算机上的音乐共享,邻居的计算机会看到并连接。
这些只是可以从零配置IP网络中受益的现有应用程序中的一小部分。零配置IP网络具有增强移动游戏、家庭网络、分布式计算和许多其他网络应用的潜力。此外,零配置IP网络为一类全新的支持IP的数字设备打开了大门。
什么是Bonjour?
Bonjour是苹果提出的IP零配置网络方案。Bonjour来自ZEROCONF工作组的工作,该工作组是互联网工程任务组(IETF)的一部分。ZEROCONF工作组对IP零配置网络的要求和建议解决方案主要涵盖三个方面:
- 寻址(为主机分配IP地址)
- 命名(使用名称来指代主机,而不是IP地址)
- 服务发现(自动查找网络上的服务)
Bonjour为所有这三个领域提供了零配置解决方案,如下四节所述。
Bonjour允许服务提供商、硬件制造商和应用程序程序员支持单一网络协议IP,同时在易用性方面开辟新天地。
网络用户不再需要分配IP地址、分配主机名或甚至键入名称来访问网络上的服务。用户只需询问可用的网络服务,然后从列表中选择。
在许多方面,这种浏览对应用程序来说甚至比对用户来说更强大。应用程序可以自动检测他们需要的服务或他们可以与之交互的其他应用程序,允许自动连接、通信和数据交换,而无需用户干预。
寻址
寻址问题通过自分配链路本地寻址来解决。链路本地寻址使用为本地网络保留的一系列地址,通常是小型LAN或单个LAN段。为此,IPv6规范将自分配链路本地寻址作为协议的一部分。零配置网络的主要解决挑战是将此功能升级为IPv4。
注意:IPv6链路本地寻址比IPv4链路本地寻址更简单,因此更可靠。因此,您的应用程序支持IPv6非常重要。
在IPv4中,自分配寻址通过在链路本地范围中选择一个随机IP地址并对其进行测试来实现。如果该地址未被使用,它将成为您的本地地址。如果它已经在使用,计算机或其他设备会随机选择另一个地址并重试。
注意:如果一个主机向另一个主机发送数据包时,整个链路层有效负载(物理网络中表示的数据包内容,如以太网)未经修改就到达,则两个主机被视为位于同一本地链路上。实际上,在以太网网络上,这意味着没有IP路由器触及两个主机之间的数据包。
大多数主要操作系统都支持IPv4和IPv6中的链路本地寻址。硬件制造商应在其设备上实现链路本地寻址,以获得Bonjour的全部好处。
计算机或iOS设备上支持链接本地寻址的任何用户或服务都会自动受益于此功能。当您的主机遇到本地网络时,它会找到一个未使用的本地地址并采用它。无需执行任何操作
命名
所提出的本地网络上的名称到地址转换解决方案使用多播DNS(mDNS),其中DNS格式查询使用IP多播在本地网络上发送。因为这些DNS查询被发送到多播地址,所以不需要具有全局知识的单个DNS服务器来回答这些查询。当每个服务或设备看到对其自身名称的查询时,它可以提供自己的DNS功能,并提供具有自己地址的DNS响应。
Bonjour走得更远。它包括一个响应器,用于处理主机或iOS设备上任何网络服务的mDNS查询。这使您的应用程序无需解释和响应mDNS消息。通过注册您的服务,Bonjour mDNSResponder守护程序会自动通告您的服务可用性,以便对您的姓名的任何查询都会自动指向正确的IP地址和端口号。
注意:注册是使用Bonjour API之一执行的。此功能仅适用于在主机或iOS设备上运行的服务。在其他设备(如打印机)上运行的服务需要实现一个简单的mDNSResponder守护进程,该守护进程处理对该设备提供的服务的查询。
Bonjour还为NAT端口映射协议(NAT-PMP)提供内置支持。如果上游路由器支持此协议,OS X和iOS应用程序可以创建和销毁端口映射,以允许防火墙另一侧的主机连接到提供的服务。(NAT端口映射将在“网络概述”中的“防火墙和网络地址转换”中进一步描述。)
要使名称到地址的转换正常工作,必须在本地网络上使用唯一的名称。与传统的DNS主机名不同,本地名称仅在本地网络或LAN段上有意义。您可以像自行分配本地地址一样自行分配本地名称,选择一个;如果它还没有使用,需要做下面的两步:
1.硬件制造商通过让他们的设备发送一个mDNS查询来确定他们选择的名称是否已经在使用,并查找任何响应。如果有响应,设备应选择另一个名称。没有用户界面的设备会将一个递增的更大数字附加到默认名称,直到该名称唯一。例如,如果默认名称为XYZ-LaserPrinter.local的打印机连接到已安装其他两台相同打印机的本地网络,则会测试XYZ-LaserPrinter.local、XYZ-LaserPrinter-2.local和XYZ-LaserPrint er-3.local(未使用并成为其名称)。
2.软件服务在Bonjour注册时提供名称。如果提供的名称已在使用中,Bonjour将默认自动为您重命名服务。
在OS X中,用户可以通过“系统首选项”的“共享”窗格中的“本地主机名”设置为其计算机设置主机名。(在iOS中,主机名是自动生成的,不可配置。)在使用Web浏览器、命令行工具等常规DNS主机名的任何地方都可以使用此主机名。若要向系统指示名称是本地主机名,请附加一个点(.)和本地。主机名;Steven.local.是本地主机名的一个示例。
重要提示:第一个点用作分隔符。为了防止应用程序使用搜索域查找服务,请通过在本地添加最后一个点来完全枚举主机名。。
例如,如果用户在Web浏览器中键入steve.local.,这将告诉系统在本地网络上对steve的请求进行多播,而不是将其发送到传统的DNS服务器。如果本地网络上有一台名为steve的启用Bonjour的计算机,则会向用户的浏览器发送正确的IP地址。这允许用户在没有常规DNS服务器的情况下访问本地主机和服务。
注意:用户可以避免在Bonjour主机名后键入.local.,方法是在“系统首选项”的“网络”窗格的“搜索域”部分输入local,以及任何其他DNS域,如apple.com或earthlink.net。在“网络”面板的“搜索域名”部分列出的连续域中搜索不合格的名称,如steve,在本例中为steve.apple.com,steve.eearthlink.net和steve.local。
可以了解下域命名惯例
服务发现
Bonjour的最后一个元素是服务发现。服务发现允许应用程序查找特定类型服务的所有可用实例,并维护命名服务和端口号的列表。然后,应用程序可以将服务主机名解析为IPv4和IPv6地址列表,如命名中所述。
命名服务列表提供了服务与其当前DNS名称和端口号之间的间接层。Indirection允许应用程序保留可用服务的持久列表,并在使用服务之前解析实际的网络地址。该列表允许动态重新定位服务,而无需生成大量网络流量来宣布更改。
Bonjour中的服务发现是通过“浏览”完成的。针对给定的服务类型和域发出mDNS查询,任何匹配的服务都会回复其名称。结果是可供选择的可用服务列表。
这与传统的以设备为中心的网络服务理念非常不同。对于处理服务器、网络设备和网络编程的人来说,很容易养成从物理硬件角度考虑服务的习惯。在这种以设备为中心的视图中,网络由多个设备或主机组成,每个设备或主机都有一组服务。例如,网络可能由一台服务器机器和几个客户端机器组成。在以设备为中心的浏览方案中,客户端向服务器查询其正在运行的服务,获取列表(FTP、HTTP等),并决定使用哪个服务。界面反映了物理系统的组织方式。但这不一定是用户逻辑上想要或需要的。
用户通常希望完成某项任务,而不是查询设备列表以了解正在运行的服务。客户只问一个问题:“有哪些打印服务可用?”比问每个可用的设备“您正在运行哪些服务?”并筛选结果以查找打印机更有意义。以设备为中心的方法不仅耗时,而且会产生大量的网络流量,其中大部分都是无用的。以服务为中心的方法发送一个查询,只生成相关的回复。
此外,服务不与特定的IP地址甚至主机名绑定。例如,网站可以由具有不同地址的多个服务器托管。在一个组织内,网络管理员可能需要将服务从一个服务器移动到另一个服务器,以帮助平衡负载。如果客户机存储主机名(在大多数情况下,他们现在这样做),那么如果服务移动到其他主机,他们将无法连接。
Bonjour采用面向服务的观点。查询是根据所需服务的类型而不是提供服务的主机进行的。应用程序存储服务实例名称,而不是地址,因此如果IP地址、端口号甚至主机名发生了更改,应用程序仍然可以连接。通过专注于服务而不是设备,用户的浏览体验变得更加有用和无故障
Bonjour如何减少开销
无服务器寻址、命名和服务发现有可能产生大量的网络流量,但Bonjour采取了许多步骤将流量降至最低。这使得Bonjour可以获得AppleTalk的易用性,同时避免任何不必要的“闲聊”
Bonjour使用了几种机制来减少零配置开销,包括缓存、抑制重复响应、指数回退和服务通告,如以下部分所述。
缓存
Bonjour使用多播DNS记录缓存来防止主机请求已请求的信息。例如,当一个主机请求LPR后台打印程序列表时,打印机列表通过多播返回,因此所有本地主机都会看到它。下次主机需要后台打印程序的列表时,它的缓存中已经有了该列表,不需要重新发出查询。多播DNS响应者负责维护缓存;应用程序开发人员不需要做任何事情来维护它。
抑制重复响应
为了防止对同一查询重复回答,Bonjour服务查询包括一个已知答案列表。例如,如果主机正在浏览打印机,则第一个查询不包括打印服务,并从可用的打印服务器获得12个答复。下次主机查询打印服务时,查询将包括已知服务器的列表。列表中已存在的打印服务器没有响应。
Bonjour以另一种方式抑制重复反应。如果一个主机即将响应,并且注意到另一个主机已经使用相同的信息进行了响应,则该主机将抑制其响应。
应用程序开发人员不需要采取任何措施来抑制重复响应。Bonjour处理重复响应抑制。
指数后退和服务公告
当主机浏览服务时,它不会连续发送查询以查看是否有新服务可用。相反,主机发出初始查询并以指数方式减少后续查询的频率,例如:1秒后、3秒后、9秒后、27秒后等,最多间隔一小时。
这并不意味着浏览器需要一个多小时才能看到新服务。当一个服务在网络上启动时,它会使用类似的指数后退算法几次宣布其存在。这样,服务通告和发现的网络流量保持在最小,但新服务很快就会出现。
在配备Bonjour的主机上运行的服务在向mDNSResponder守护程序注册时自动宣布。在其他硬件(如打印机)上运行的服务应该以指数级回退的方式实现服务公告,以充分利用Bonjour。
相关文章:
【Airplay_BCT】Bonjour conformance tests苹果IOT
从Airplay开始,接触到BCT,这是什么?被迫从安卓变成ios用户和开发。。。开始我的学习之旅,记录成长过程,不定时更新 Bonjour 下面是苹果官网关于bonjour的解释 Bonjour, also known as zero-configuration networking, …...
开发微服务电商项目演示(五)
登录方式调整第1步:从zmall-common的pom.xml中移除spring-session-data-redis依赖注意:本章节中不采用spring-session方式,改用redis直接存储用户登录信息,主要是为了方便之后的jmeter压测;2)这里只注释调用…...
Git删除大文件历史记录
Git删除大文件历史记录 git clone 仓库地址 查看大文件并排序 git rev-list --objects --all |grep $(git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -1|awk {print $1})删除大文件 git filter-branch --force --index-filter git rm --cached --ig…...
Seata-Server分布式事务原理加源码(一) - 微服务之分布式事务原理
概念 基础概念:事务ACID • A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失 败的情况。 • C(Consistency)…...
【ZooKeeper】zookeeper源码9-ZooKeeper读写流程源码分析
源码项目zookeeper-3.6.3:核心工作流程ZooKeeper选举和状态同步结束之后的服务启动ZooKeeper SessionTracker启动和工作机制ZooKeeper选举和状态同步结束之后的服务启动 在Leader的lead()方法的最后,即Leader完成了和集群过半Follower的同步之后&#x…...
Python实现批量导入xlsx数据1000条
遇到的问题:用户批量导入数据1000条,导入不成功的问题,提示查询不到商品资料。这个场景需要依靠批量的数据,每次测试的时候需要手动生成批量的数据,然后再导入操作,费时费劲。所以写了个脚本来实现。在前面…...
Ubuntu20.04安装redis与远程连接
一、安装Redis5.7 1、安装Redis apt-get install redis-server2、安装完成后,Redis服务器会自动启动。查看redis是否启动成功 service redis-server status #查看状态如下显示Active:active(running)状态:表示redis已在运行,启动成功。 …...
SAS应用入门学习笔记5
input 操作符: 代码说明: 1)1 表示第1列字符;7表示第7列字符; 2)col1 表示第一列数据;col2 表示第二列数据; 3)4.2 表示的是4个字符,2表示小数点后两位&a…...
PHP新特性集合
php8新特性命名参数function foo(string $a, string $b, ?string $c null, ?string $d null) { /* … */ }你可以通过下面的方式传入参数进行调用foo(b: value b, a: value a, d: value d, );联合类型php7class Number {/** var int|float */private $number;/*** param f…...
【开发环境配置】--Python3的安装
1-开发环境配置 工欲善其事,必先利其器! 编写和运行程序之前,我们必须先把开发环境配置好。只有配置好了环境并且有了更方便的开发工具,我们才能更加高效地用程序实现相应的功能。然而很多情况下,我们可能在最开始就…...
postman实现接口测试详细教程
各位小伙伴大家好, 今天为大家带来postman实战接口测试详细教程 一、通过接口文档集合抓包分析接口 通过fiddler抓包获取到注册接口URL地址及相关参数数据,并通过接口文档分析接口参数内容及参数说明, 如有必要的依赖条件必须进行梳理, 如token等 Fiddler抓包注册接口请求与…...
使用crontab执行定时任务
本来这个东西是挺简单的,是我脑子一直没转过来弯,我就想看看有多少人跟我一样😏 crontab语法自己去菜鸟教程看看就知道了,没什么难度 需求:每分钟定时执行一个PHP文件或者一个PHP命令 这是需要执行的文件࿰…...
剑指 Offer 56 - II. 数组中数字出现的次数 II
题目 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 思路 这题是剑指 Offer 56 - I. 数组中数字出现的次数的变体,本题只有一个数num出现一次,其余的均出现三次 三次的话使用异或消无法…...
C语言学习笔记(八): 自定义数据类型
结构体变量 什么是结构体 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体 结构体的成员可以是任何类型的变量,如整数,字符串,浮点数,其他结构体,指针等 struct Student //s…...
Video Speed Controller谷歌视频加速插件——16倍速
文章目录前言最简单的版本一、如果是简单的话 可以Microsoft Edge使用二、简单的版本 火狐的话使用Global Speed插件三、由于视频受限以上的方法行不通 还是谷歌好用前言 主要是网课刷的时候 太慢所以找到了刷视频的方法 由于前几个的权限受限制 所以还是选用了谷歌浏览器的 V…...
VSCode 的下载安装及基本使用
目录 一、VSCode 是什么? 二、VSCode 的下载和安装 2.1 - 下载 2.2 - 安装 2.3 - 安装汉化插件 三、MinGW-w64 的下载安装及配置 3.1 - 介绍 3.2 - 下载 3.3 - 解压安装 3.4 - 环境变量配置 3.5 - 验证配置是否成功 3.6 - 安装 C/C 插件 四、在 VSCode …...
【操作系统】磁盘IO常见性能指标和分析工具实战
1.磁盘读写常见的指标 (1)IOPS(Input/Output Operations per Second) 指每秒能处理的I/O个数,表示块存储处理读写(输出/输入)的能力,单位为次,有顺序IOPS和随机IOPS比如…...
SpringMVC基础
简介 Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面;Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块;使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择…...
低代码开发平台|制造管理-质检管理搭建指南
1、简介1.1、案例简介本文将介绍,如何搭建制造管理-质检管理。1.2、应用场景质检分别包括来料质检、过程质检、成品质检,来料质检在采购物料入库后会自动发起来料质检的流程,质检合格才可提交结束流程;过程检是在生产过程中的质检…...
推荐一个.Ner Core开发的配置中心开源项目
更多开源项目请查看:一个专注推荐.Net开源项目的榜单 当你把单体应用改造为微服务架构,相应的配置文件,也会被分割,被分散到各个节点。这个时候就会产生一个问题,配置信息是分散的、冗余的,变成不好维护管理…...
Vue3+vite4使用mockjs进行模拟开发遇到的坑
Vue3vite4使用mockjs进行模拟开发遇到的坑 最近没那么忙了,就想着自己写一个后台管理系统的小demo。刚好最近把Vue3的文档撸了一遍,正好可以顺便练习一下Vue3ts。 插件 1、mockjs是必不可少的。 2、vite-plugin-mock。由于现在创建Vue3项目默认都使用vit…...
一起Talk Android吧(第四百九十三回:动画知识总结)
文章目录知识回顾经验总结各位看官们大家好,上一回中咱们说的例子是"精减版动画",这一回中咱们说的例子是" 动画知识总结"。闲话休提,言归正转,让我们一起Talk Android吧!知识回顾 看官们,我们在…...
腾讯云企业网盘正式入驻数字工具箱
腾讯技术公益继腾讯电子签等入驻后,上线近半年的腾讯技术公益数字工具箱再次迎来新成员——腾讯云企业网盘,现已正式接受公益机构申请公益权益。腾讯云企业网盘(https://pan.tencent.com)是由腾讯云推出的一款安全、高效、开放的企…...
2.13练习
1、设备树设备树描述硬件信息的一种树形结构,设备树文件在linux内核启动后被内核解析。描述一个硬件设备信息的节点我们叫做设备节点,一个设备节点内部包含当前硬件的多个不同属性,相同节点不同属性是以链式结构存储2、设备树的文件格式内核顶…...
【iOS】APP IM聊天框架的设计(基于第三方SDK)
【iOS】APP IM聊天框架的设计(基于第三方SDK) 前言 在开发社交聊天类型的APP的时候,IM是必不可少的功能,而且很多公司的IM服务都是接的第三方的,很少用自研的,国内的IM厂商也都很成熟,本文所有…...
centos安装FastDFS,集成到SpringBoot中
前言 本教程采用centos7 实测 安装fastdfs,每一步都存在截图,安装不成功你就我 最关键的是采用springboot 集成 fastdfs,上传保存文件信息 小序 FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括&…...
看透react源码之感受react的进化
写在前面 网上有许多关于react源码解读的文章,其中有很多都只是单纯贴源码,罗列变量名。其实大家都知道这个英文怎么读,直译也大概知道意思,但是这个英文在react中起到什么作用,并没有说的很通俗明白。 对于刚刚接触…...
【最优化理论】线性规划
文章目录什么是线性规划(Linear Programming,LP)?线性规划的标准形式非标准形LP模型转化为标准形LP模型基本概念基本解&基矩阵&基变量&非基变量基本可行解&可行基矩阵&非退化的基本可行解&退化的基本可行…...
数据库测试的认知和分类
数据库测试的认知和分类 目录:导读 系统测试 集成测试 单元测试 功能测试 数据库性能 性能优化分4部分 安全测试 现在的软件系统,尤其是业务应用系统,后台都连接着一个数据库。数据库中存储了大量的数据,数据库的设计是否…...
MQ中间件概念一览
一、概述 1. 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力 2. 消息服务中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由…...
江苏省两学一做网站/移动网站推广如何优化
英语单词词汇一直是同学们要记忆的一部分,考试高分的基础也就是词汇量,那么今天就和大家分享一下过来人的4个英语词汇记忆法!希望对同学们有用!高赞资料<a href"https://zhuanlan.zhihu.com/p/112495122">&#x…...
网站策划公司/自己建个网站要多少钱
今天太郁闷了, MySQL启动的时候忘记了密码,然后启动不了, 我就卸载了再重装,可是重装的时候老是会报错,错误提示是:The security settings could not be applied to the database because the connection h…...
做英文网站费用/优化设计高中
调用mqic32.dll是简单的,但是想要返回给你的一个CompCode MQCC_OK是不容易的。 首先,确定mqclient和mqserver是ok联通的。在MQ Client(only)连接MQ Server收发消息配置 【转】已经说明。dos命令窗口用手工确认客户端连接服务端没有问题, 其次…...
做网站电脑需要配置很好吗/怎么创建一个网页
去掉 MyBatis XML 文件中 SQL 语句的背景色 效果图 修改方法 没改前效果...
南水北调中线干线工程建设管理局网站/新闻软文发布平台
(1)Constructing Objects at Run Time in SilverlightSilverlight的内容在你的页面上就像一个对象层次在树的结构中样.这是单个的.一个在这个结构中最顶上的对象是root object,也是Silverlight plug-in的Source指定相应的XAML中的root.这 个root对象通常是一个Canvas对象,因为C…...
外贸建立网站怎么做/有没有推广app的平台
首先我们看下面视图: 这种效果大家都不陌生,网上好多都说是仿人人网的,估计人家牛逼出来的早吧,我也参考了一一些例子,实现起来有三种方法,我下面简单介绍下: 方法一:其实就是对Gest…...