摘要:1. UDP简介 UDP协议是传输层协议的一种,它不需要建立连接,是不可靠、无序的,相对于TCP协议报文更简单,在特定场景下有更高的数据传输效率,在现代的网络通讯中有广泛的应用,以最新的HTTP/3为例,它是基于QUIC(Quick UDP Internet Connections)协议的,从协议名
阅读全文
合集-鸿蒙网络编程系列
摘要:1.回声服务器简介 回声服务器指的是这样一种服务器,它接受客户端的连接,并且把收到的数据原样返回给客户端,本文将使用UDP协议实现一个回声服务器,关于UDP通讯相关方法的介绍可以参考上一篇博文:鸿蒙网络编程系列1-UDP通讯示例,最终应用的界面如下图所示: 2.实现思路 首先创建一个UDP实例,然后
阅读全文
摘要:1. TCP简介 TCP协议是传输层最重要的协议,提供了可靠、有序的数据传输,是多个广泛使用的表示层协议的运行基础,相对于UDP来说,TCP需要经过三次握手后才能建立连接,建立连接后才能进行数据传输,所以效率差了一些,但是它的发送-确认机制决定了传输是可靠的,再加上滑动窗口机制的设计,也可以极大的提
阅读全文
摘要:1. SMTP简介 SMTP协议是邮件发送的应用层协议,被称为简单邮件传输协议,采用请求应答方式进行通讯,SMTP命令和响应是基于ASCII文本的,并且以回车换行符(CR和LF)结束,SMTP服务端的底层一般使用TCP协议,在掌握了TCP通讯的方法后,就可以自己实现一个简单的邮件发送客户端,关于TC
阅读全文
摘要:1. TCP连接超时简介 TCP是面向连接的协议,通过三次握手建立连接,但是,在建立连接的过程中对方有可能没有响应,这时候发起连接的一方会重试,如果重试多次仍然没有响应,就会触发超时,从而导致连接失败,socket的connect方法支持通过参数设置连接超时时间,默认情况下也可以使用缺省的超时时间,
阅读全文
摘要:1. 什么是粘包 在基于TCP协议的端到端通讯中,如果一端连续发送两个或者两个以上的数据包,对端在一次接收时,收到的数据包数量可能大于1个,也可能是几个完整数据包加上一个完整包的一部分数据,这些统称为粘包。 2.TCP粘包示例 本文将设计一个示例演示数据粘包的表现,具体的思路是这样的: 1)使用鸿蒙
阅读全文
摘要:1.TLS简介 TLS(Transport Layer Security)协议的前身是SSL(Secure Socket Layer)安全套接层协议,由Netscape公司于1994年提出,是一套网络通信安全协议。IETF(The Internet Engineering Task Force)后期
阅读全文
摘要:1.TLS双向认证 在上一篇文章鸿蒙网络编程系列7-TLS安全数据传输单向认证示例中,演示了单向认证的方式,也就是客户端需要验证服务端的数字证书,而服务端不需要验证客户端的数字证书,这能满足大部分业务场景,但是,在一些高安全性需求的场景下,服务端也需要确保客户端是可信的,这就要求双向认证,也就是除了
阅读全文
摘要:1. HTTP协议简介 HTTP(Hypertext Transfer Protocol)协议是现代互联网的基石协议之一,有着最广泛的应用,于1991年由英国计算机科学家蒂姆·伯纳斯·李(Tim Berners-Lee)正式提出,当时被称为HTTP协议0.9版本;1996年通过RFC 1945发布了
阅读全文
摘要:1. 网站下载文件简介 在上一篇文章鸿蒙网络编程系列9-使用HttpRequest模拟登录示例中,我们使用HttpRequest模拟了登录,同样,使用HttpRequest也可以下载文件,假设还是上文中提到的网站,在登录后会进入首页,在首页会显示下载列表,单击某一个文件就可以下载了,如图所示: 这里
阅读全文
摘要:1. HTTP上传文件简介 在上一篇文章鸿蒙网络编程系列10-使用HttpRequest下载文件到本地示例中,我们使用HttpRequest下载了文件,同样,使用HttpRequest也可以上传文件,假设我们有一个网站,其文件上传地址为http://192.168.100.101:8081/uplo
阅读全文
摘要:1. Request下载文件简介 在前述文章鸿蒙网络编程系列10-使用HttpRequest下载文件到本地示例中,使用基础的HttpRequest模块演示了如何下载文件到本地,整个下载过程看起来好像不太复杂,但是,如果考虑到可靠性、网络问题以及文件类型和大小的差异,开发难度还是相当大的,幸运的是,鸿
阅读全文
摘要:1. Request上传文件简介 在前述文章鸿蒙网络编程系列11-使用HttpRequest上传文件到服务端示例中,使用基础的HttpRequest模块演示了如何上传文件到服务器,在鸿蒙网络编程系列12-使用Request部件下载文件到本地示例中,介绍了request部件,该部件提供了上传下载的方法
阅读全文
摘要:1. WebSocket简介 WebSocket协议最初于2011年通过RFC 6455完成了标准定义,后来又通过RFC 7936、RFC 8307、RFC 8441等标准对协议进行了完善。WebSocket位于网络分层模型的应用层,是建立在TCP之上的双向通讯协议,可以在一个TCP连接上进行全双工
阅读全文
摘要:1. 域名解析简介 计算机网络中包括多个节点,要进行报文传输就要能够唯一确定每一个节点,解决这个问题的方式是给每个节点分配一个唯一的地址,这个地址被称为节点的网络地址,在网络层的IP协议下,这个地址又被称为IP地址。但是,IP地址不方便记忆,并且不能显示地址组织的名称和性质,为此人们设计出了域名(D
阅读全文
摘要:1. Wifi信息简介 对于移动设备来说,一般都提供了无线网卡,可以在需要时连接无线网络,这时候就可以获取相关的无线网络信息,比如热点名称、连接频段、链接速度、IP地址、MAC地址等,鸿蒙系统提供了丰富的无线网络管理API,可以轻松获取相关WIFI信息。 2. Wifi信息获取常用方法 鸿蒙封装的w
阅读全文
摘要:1. 网络状态简介 移动设备一般都具备移动网络和无线WIFI的连接能力,有些还可以接入有线以太网,这些网络可以根据需要随时切换,在网络切换过程中,伴随着网络状态的变化,比如网卡名称、IP地址、上传下载能力等等,鸿蒙提供了网络状态变化的监测api,可以随时根据需要捕获状态的改变。 2. 网络状态监测常
阅读全文
摘要:1. Web组件简介 在应用界面里嵌入网页是很多快速APP开发使用的方式之一,通过这种方式可以比较好的达到多端兼容的效果,鸿蒙也一样提供了类似的能力,就是基础组件中的Web组件。当然,单纯的靠Web组件也无法实现复杂的功能,还需要对应的控制器WebviewController,两者配合可以达到最佳的
阅读全文
摘要:1. 网络类型简介 移动设备一般都具备移动网络和无线WIFI的连接能力,有些还可以接入有线以太网,这些网络可以根据需要随时切换。鸿蒙APP可以自动适应上述的网络,一般来说,会优先使用WIFI或者有线以太网,移动网络因为要收费,不会首选使用。但是在某些特殊情形下,可能要求必须使用某一种网络,比如必须使
阅读全文
摘要:1. web组件加载网页白屏表现 鸿蒙系统提供了web组件,可以在APP里内嵌该组件显示网页信息,但是,很多开发者反应一种比较奇特的情况,就是在加载的网页里,如果含有字符#的话,就会出现白屏,或者是#后的内容无法显示。当然,web组件加载网页的方式比较多,在上文鸿蒙网络编程系列18-Web组件加载网
阅读全文
摘要:1. 前述文件上传功能简介 在前述文章鸿蒙网络编程系列11-使用HttpRequest上传文件到服务端示例中,为简化起见,只描述了如何上传文本类型的文件到服务端,对文件的大小也有一定的限制,只能作为鸿蒙API演示使用,在实际开发中上传的文件类型多样,大小不一,本文将介绍一种适应性更广的方法,可以上传
阅读全文
摘要:1. web组件文件上传功能简介 鸿蒙的web组件可以加载网页,如果网页本身具备文件上传功能的话就比较尴尬了,因为html上传文件时,允许用户选择本地文件,但是鸿蒙因为安全性的考虑,只允许操作沙箱中的文件,所以在web组件中的上传功能本身无法直接使用。如果一定要使用的话,就要另辟蹊径,既然不允许选择
阅读全文
摘要:1. 鸿蒙HTTP服务器可行性分析 看到这个题目,可能有的小伙伴会有一些疑问: “鸿蒙API从9到12我都翻烂了,也没见提供HTTP服务器的接口啊” “我BUG写得少,你可不要骗我” 的确,目前的鸿蒙API没有提供HTTP服务端的实现接口,但是我们知道,HTTP协议是基于TCP的,而鸿蒙API10提
阅读全文
摘要:1. APP内嵌网页与应用互操作概述 在通常的APP开发中,经常会采用内嵌网页的形式,通过网页来展现丰富的动态内容,虽少了很多原生开发的功能,但是这么做无可厚非,毕竟APP需要适配的系统平台很多,比如安卓、苹果、各种PC端,现在还有如日中天的鸿蒙系统;为每一种平台做定制难度还是很大的,但是这些平台的
阅读全文
摘要:1. TCP回声服务器实现可行性 在前文鸿蒙网络编程系列2-UDP回声服务器的实现中,介绍了什么是回声服务器,并且基于UDP协议实现了一个简单的回声服务器,本节将基于TCP协议实现一个类似的回声服务器。在鸿蒙API10以后,提供了TCPSocketServer类,该类封装了TCP服务端的相关接口,包
阅读全文
摘要:1. HTTPS请求的问题 在前述关于HttpRequest的文章中,比如鸿蒙网络编程系列9-使用HttpRequest模拟登录示例,请求的是HTTP协议的网址,如果是服务端是使用HTTPS的,就可能有问题,主要是服务端数字证书的有效性,如果是自签名的数字证书,在默认情况下,会使用系统CA进行校验,
阅读全文
摘要:1. 服务端数字证书验证的问题 在鸿蒙客户端对服务端发起HTTPS请求时,如果使用HttpRequest的request发起请求,那么就存在服务端数字证书的验证问题,你只有两个选择,一个是使用系统的CA,一个是使用自己选定的CA,在上文鸿蒙网络编程系列26-HTTPS证书自选CA校验示例中,对此进行
阅读全文
摘要:1. TLS通讯中间人攻击及防范简介 TLS安全通讯的基础是基于对操作系统或者浏览器根证书的信任,如果CA证书签发机构被入侵,或者设备内置证书被篡改,都会导致TLS握手环节面临中间人攻击的风险。其实,这种风险被善意利用的情况还是很常见的,比如著名的HTTPS调试工具Fiddler,就是利用了这一点,
阅读全文
摘要:1. RCP下载功能简介 RCP模块是Harmony NEXT全新开发的HTTP数据请求能力接口,它为上传下载能力专门封装了几个方法,针对下载能力,主要是下载到文件的downloadToFile方法: downloadToFile(url: URLOrString, downloadTo: Down
阅读全文
摘要:1. 断点续传简介 在文件的下载中,特别是大文件的下载中,可能会出现各种原因导致的下载暂停情况,如果不做特殊处理,下次还需要从头开始下载,既浪费了时间,又浪费了流量。不过,HTTP协议通过Range首部提供了对文件分块下载的支持,也就是说可以指定服务器返回文件特定范围的数据,这就为我们实现文件的断点
阅读全文
摘要:简介 在OpenAI推出GPT系列大模型以后,市场上各种类似的大模型也层出不穷,这些大模型也基本都会兼容OpenAI的接口,在开发基于大模型的应用时,选择使用OpenAI接口作为和后端大模型通讯的标准,可以更好的适配不同厂家的模型。本节将开发一个简单的智能助手,可以支持OpenAI兼容的大模型作为后
阅读全文
摘要:1. 拦截器简介 在Web开发中拦截器是一种非常有用的模式,它允许开发者在请求发送到服务器之前或响应返回给客户端之前执行一些预处理或后处理操作。这种机制特别适用于需要对所有网络请求或响应进行统一处理的情况,比如添加全局错误处理、请求头的修改、响应数据的格式化等,本示例将使用RCP模块提供的拦截器功能
阅读全文
摘要:1. 网络通讯的安全性问题 在本系列的第1、2、3、25篇文章,分别讲解了使用UDP以及TCP进行通讯的方式,并且以回声服务器的形式分别演示了客户端与服务端之间的通讯。这种通讯方式一般来说没什么问题,但是在需要对内容保密的情况下就不可取了,毕竟它们都是通过明文进行通讯的,如果数据包在传输过程中被拦截
阅读全文
摘要:1. Wifi热点简介 Wifi热点是移动设备接入网络的重要形式,特别是在不具备固定网络接入点的情况下,可以通过Wifi热点灵活方便的接入网络,因此在日常生活中具有广泛的应用。鸿蒙系统也提供了方便的Wifi管理API,支持热点扫描,热点连接等功能,相关的能力归属于系统相关Kit开放能力中的Conne
阅读全文
摘要:1. TCP数据传输粘包简介 在本系列的第6篇文章《鸿蒙网络编程系列6-TCP数据粘包表现及原因分析》中,我们演示了TCP数据粘包的表现,如图所示: 随后解释了粘包背后的可能原因,并给出了解决TCP传输粘包问题的两种思路,其中一种就是指定数据包结束标志,本节将通过一个示例演示这种思路的实现。 2.
阅读全文
摘要:1. TCP数据传输粘包简介 在本系列的第6篇文章《鸿蒙网络编程系列6-TCP数据粘包表现及原因分析》中,我们演示了TCP数据粘包的表现,如图所示: 随后解释了粘包背后的可能原因,并给出了解决TCP传输粘包问题的两种思路,第一种是指定数据包结束标志,在本系列第35篇《鸿蒙网络编程系列35-通过数据包
阅读全文
摘要:1. TLS通讯简介 在本系列的第7、8篇文章,分别讲解了基于TLS传输单向和双向认证的通讯示例,这两个示例都是TLS客户端直接连接TLS服务端的。众所周知,TLS通讯也是基于TCP协议的,首先在TCP协议上,客户端和服务端连接成功,然后双方经过TLS握手过程,认证数字证书,最后再进行加密的通讯。既
阅读全文
摘要:1. web组件文件下载能力简介 在本系列的第22篇文章,介绍了web组件的文件上传能力,同样的,web组件也具备文件下载能力,鸿蒙API提供了处理web组件下载事件的委托类型WebDownloadDelegate,该类型包括四个下载事件的回调接口: class WebDownloadDelegat
阅读全文
摘要:1. web组件打印简介 web组件在加载了网页以后,有两种方式可以实现打印,第一种是在网页中调用W3C标准协议接口window.print()进行打印,这种方式比较简单方便,只要网页中触发了该方法即可打印,缺点是如果网页没有地方触发则不能打印;另外一种是在应用侧实现的,通过web控制器的creat
阅读全文
摘要:1. TLS数字证书验签简介 数字证书的验签是网络编程中一个重要的功能,它保证了数字证书的真实性,在此基础上,我们才可以信任该证书,从而信任基于该证书建立的安全通道,所以说,数字证书的验签是通讯安全的基石,了解数字证书验签的原理和方法,有助于我们建立安全的通讯。 用户数字证书的验签是通过签发该数字证
阅读全文
摘要:1. HttpRequest模拟登录简介 在本系列的第9篇文章《鸿蒙网络编程系列9-使用HttpRequest模拟登录示例》中,我们基于ArkTS语言在API 9的环境下使用HttpRequest发起HTTP请求,模拟了对目标网站的登录,本文将使用仓颉语言在API 12的环境中实现类似的功能。 鸿蒙
阅读全文
摘要:1. 域名解析简介 域名解析是网络开发中经常使用的功能之一,特别是对于当前版本的鸿蒙API,使用TCP或者UDP等网络协议通讯时,只能使用确定的IP地址进行绑定或者发送消息,还不支持直接使用域名,所以,通过域名解析得到对应的IP地址,然后再使用套接字进行通讯,可以避免使用者记录IP地址的困难。 在本
阅读全文
摘要:1. HttpRequest文件下载简介 在本系列的第10篇文章《鸿蒙网络编程系列10-使用HttpRequest下载文件到本地示例》中,使用ArkTS语言在API 9环境下演示了基于HttpRequest进行文件下载的功能,本章将使用仓颉语言在API 12环境下实现类似的功能。因为本示例使用的下载
阅读全文
摘要:1. HttpRequest文件上传简介 在本系列的第21篇文章《鸿蒙网络编程系列21-使用HttpRequest上传任意文件到服务端示例》中,使用ArkTS语言基于API 9环境演示了文件上传功能的实现,本节将使用仓颉语言基于API 12环境实现类似的功能。 2. HttpRequest文件上传演
阅读全文
摘要:1. HTTPS数字证书简介 数字证书是网络安全的重要基础,它通过数字签名来保证数据的完整性和真实性。HTTPS协议通过数字证书来保证通信的安全性,数字证书由数字证书机构(CA)颁发,购买商业版本的数字证书需要不菲的费用,周期也较长,在系统的开发和测试期间,可以使用自签名的数字证书,这种方式方便快速
阅读全文
摘要:1. Web组件简介 本系列的第18篇文章《鸿蒙网络编程系列18-Web组件加载网页的四种方式示例》中,使用ArkTS语言基于API 9环境演示了Web组件四种加载网页内容的方式,其中就包括使用WebviewController的loadData方法直接加载HTML脚本的方式。不过,目前的仓颉版本还
阅读全文
摘要:1. UDP通讯简介 本系列的第1篇文章《鸿蒙网络编程系列1-UDP通讯示例》中基于ArkTS语言在API 9的环境下演示了UDP通讯的基础用法,本文将使用仓颉语言在API 12的环境中实现类似的功能。这可能听起来有点不太现实,在ArkTS语言下可以利用kit.NetworkKit下的socket模
阅读全文
摘要:1. UDP回声服务器简介 回声服务器指的是这样一种服务器,它接受客户端的连接,并且把收到的数据原样返回给客户端,本系列的第2篇文章《鸿蒙网络编程系列2-UDP回声服务器的实现》中基于ArkTS语言在API 9的环境下实现了UDP回声服务器,本文将使用仓颉语言在API 12的环境中实现类似的功能。当
阅读全文
摘要:1. TCP客户端简介 TCP协议作为传输层的核心协议,确保了数据传输的可靠性与顺序性,构成了许多广泛应用的高层协议的基础。相较于UDP,TCP在正式开始数据传输前需完成三次握手以建立连接,这一过程虽然使得TCP在效率上略逊一筹,但其采用的发送-确认机制确保了数据传输的高度可靠性。此外,通过引入滑动
阅读全文
摘要:1. TCP服务端简介 TCP服务端是基于TCP协议构建的一种网络服务模式,它为HTTP(超文本传输协议)、SMTP(简单邮件传输协议)等高层协议的应用程序提供了可靠的底层支持。在TCP服务端中,服务器启动后会监听一个或多个端口,等待客户端发起连接请求。当接收到客户端的连接请求时,服务端会响应并建立
阅读全文
摘要:1. Request部件简介 鸿蒙系统提供了上传下载部件,即Request部件,封装了上传下载能力,方便了相关功能的开发。不过,在当前适配仓颉语言的Request部件中,只提供了基于代理(Agent)的上传下载能力,方便性也相对ArkTS语言差一些,毕竟是刚开始适配,以后应该会提供更丰富的功能。本文
阅读全文
摘要:1. Request上传文件简介 在本系列的第51篇文章《鸿蒙网络编程系列51-仓颉版使用Request部件下载文件到本地》中介绍了如何使用Request部件下载文件,Request部件还具有上传文件的能力,本文将通过一个示例演示该能力在仓颉语言下的实现。本文使用的服务端为本系列第13篇文章《鸿蒙网
阅读全文

浙公网安备 33010602011771号