基于openHarmony实现本地UDP通信

知识补充

简介

套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口,支持TCP/UDP/TLS协议。

基本概念

  • Socket:套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。
  • TCP:传输控制协议。是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  • UDP:用户数据报协议协议。是一个简单的面向消息的传输层,不需要连接。
  • TLS:安全传输层协议。用于在两个通信应用程序之间提供保密性和数据完整性

搭建前端界面

新建项目
在这里插入图片描述
在这里插入图片描述

等待环境初始化
在这里插入图片描述

打开实时预览
在这里插入图片描述

前端基本实现效果

@Entry
@Component
struct Index {
   
  @State message: string = '本地UDP通信'
  @State value:string = 'null'

  build() {
   
    Column()
    {
   
      Text(this.message)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)
        .margin({
   top:10,bottom:50})
      Row()
      {
   
        Text("发送信息"){
   }
        TextInput({
   placeholder:"输入要发送的内容"})
          .width('80%')
      }.width('80%')
      Button("发送")
        .width('50%')
        .margin({
   top:10,bottom:50})
      Row()
      {
   
        Text("接收的信息   ")
        Text(""){
   Span(this.value).fontColor(Color.Green).fontSize(30)}  // 用于显示所接受UDPServer的消息
      }.width('80%')
    }.width('100%').height('100%')
  }
}

在这里插入图片描述

主要代码

创建UDP
async createUDP<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
基于UDP(User Datagram Protocol)实现双向可靠通信需要借助一些机制和算法来确保数据的可靠传输。 首先,双向通信意味着通信的双方都可以发送和接收数据。每个通信实体都需要创建一个UDP Socket,并且绑定相应的IP地址和端口。这样,双方可以互相发送和接收数据。 其次,可靠传输需要使用一些机制来确保数据的完整性和准确性。一种常见的机制是使用序号和确认机制。发送方将数据分割成小的数据包,并为每个数据包添加一个唯一的序号。接收方收到数据包后发送一个确认消息给发送方,确认接收到该数据包。如果发送方没有收到确认消息,它会认为数据包丢失,然后重新发送该数据包。 此外,超时重传机制也是保证数据可靠传输的重要手段。发送方在发送完一个数据包后会启动一个定时器。如果在特定的时间内未收到确认消息,发送方会重新发送数据包,直到收到确认消息或达到最大重传尝试次数。 还可以使用拥塞控制算法来避免网络拥塞。当网络拥塞时,发送方可以降低发送速率,以避免丢包和延迟。 在双向通信中,双方需要相互交流,因此可以采用双工通信模式。双工通信允许双方同时发送和接收数据,这样可以更高效地完成通信。 总结来说,基于UDP实现双向可靠通信需要使用序号和确认机制、超时重传机制、拥塞控制算法和双工通信模式。这些机制和算法的结合可以有效地保证数据的可靠传输和双方通信的顺畅进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meaauf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值