1. 整体通信架构
本次实战将实现一个鸿蒙 ArkTS TCP 客户端与Java 多线程 TCP 服务器的双向聊天功能。流程涵盖【绑定端口 → 建立连接 → 持续收发 → 资源释放】,代码可直接运行,适配鸿蒙 5.0+ 与 Java 8+ 环境。
鸿蒙客户端(ArkTS)
- 绑定本地端口
- 连接 Java 服务端
- 发送消息(带换行符做边界)
Java 服务端(Java)
- 监听端口(ServerSocket)
- 线程池分配工作线程
- 读取客户端消息(按行解析)
- 控制台输入回发消息
- 客户端接收并展示
2. 鸿蒙 ArkTS TCP 客户端实现
2.1 完整代码
import { socket } from "@kit.NetworkKit"
import { BusinessError } from "@kit.BasicServicesKit"
import util from "@ohos.util"
// 构建 TCP 套接字实例,这是整个 TCP 通信的核心对象
let tcpSocket: socket.TCPSocket = socket.constructTCPSocketInstance()
@Entry
@Component
struct Index {
// 本地绑定的端口号,默认 9990
@State localPort: number = 9990
// 消息历史记录,拼接所有收发消息
@State msgHistory: string = ""
// 滚动器实例
@State scroller: Scroller = new Scroller()
// 远程 TCP 服务器的 IP 地址,默认局域网 IP
@State : =
: =
: =
: =
: =
() {
: socket. = {
: ,
: .
}
tcpSocket.(localAddress).( {
. =
. =
}).( {
. =
})
tcpSocket.(, (value) => {
.()
buffer = value.
textDecoder = util..()
str = textDecoder.( (buffer))
. += + .() + + str +
..(.)
})
}
() {
: socket. = {
: .,
: .
}
tcpSocket.({ : serverAddress }).( {
. =
. =
}).( {
. =
})
}
(: ): {
n < ? + n : n.()
}
(): {
date = ()
time = .(date.()) + + .(date.()) + + .(date.())
time
}
() {
tcpSocket.({ : . + })
.( {
. += + .() + + . +
}).( {
. +=
})
}
() {
({ : }) {
().().(.).(.)
({ : ., : ., : . }) {
().().()
({ : ..() }).(.).().( {
. = (value)
.( + .)
})
().( {
.()
}).().()
}
({ : ., : ., : . }) {
().().()
({ : . }).().( {
. = value
.( + .)
})
({ : ..() }).().( {
. = (value)
.( + .)
})
().(.).().( {
.()
})
}
({ : ., : ., : . }) {
({ : }).( {
. = value
})
().(.).().( {
.()
})
}
(.) {
(.)
.(.)
.()
.()
}.(.).().().(.).(.).()
}.().()
}
}


