鸿蒙网络编程系列48-仓颉版UDP回声服务器示例-4. 代码分析

时间:2024-11-22 21:35:22

本示例的关键部分在于接收到客户端发送的数据后,再解析数据并重新发送给客户端,代码如下:

//从socket读取数据
                    var recResult = udpServer.receiveFrom(buffer)
                    let clientAddress = recResult[0]
                    let readCount = recResult[1]
                    //把接收到的数据转换为字符串
                    let content = String.fromUtf8(buffer[0..readCount])

                    //输出读取的内容,加上前缀S:
                    msgHistory += "${clientAddress}:${content}\r\n"
                    udpServer.sendTo(clientAddress, content.toArray())

这里面需要注意的是receiveFrom函数的返回值,和上一篇介绍的receive函数不同,receive函数是客户端使用connect函数连接到确定的对端后再读取数据,而receiveFrom函数不需要预先connect,在返回值里直接包括对端的地址和接收到的消息长度。

(本文作者原创,除非明确授权禁止转载)

本文源码地址:
https://gitee.com/zl3624/harmonyos_network_samples/tree/master/code/udp/UDPEchoServer4Cj

本系列源码地址:
https://gitee.com/zl3624/harmonyos_network_samples