跟我一起学“仓颉”编程语言-TCP协议网络编程
·
一、TcpSocket和TcpServerSocket的基本用法
服务端项目
package Study
// 导包
import std.net.*
main () {
try (
// 服务端
server = TcpServerSocket(bindAt: 9999)
) {
// 绑定端口
server.bind()
println("服务端已启动")
// 阻塞等待客户端的连接
try (client = server.accept()) {
println("服务端${client.localAddress}已连接客户端${client.remoteAddress}")
// 接收客户端发送的数据
let buffer = Array<Byte>(1024, repeat: 0)
var len = 0
// 只要数据没有读完,就一直读
while (true) {
len = client.read(buffer)
if (len == 0) {
break
}
let data = String.fromUtf8(buffer[0..len])
println("数据: ${data}")
}
}
}
}
客户端项目
package Sender
// 导包
import std.net.*
import std.console.*
main () {
try (
// 客户端
client = TcpSocket("127.0.0.1", 9999)
) {
// 连接到服务端
client.connect()
println("客户端${client.localAddress}已启动")
println("连接到${client.remoteAddress}服务端")
let data = "你好, 我是钝子生"
println("发送数据: ${data}")
client.write(data.toArray())
println("发送完毕")
}
}
服务端也可以向客户端发送数据
服务端项目
package Study
// 导包
import std.net.*
main () {
try (
// 服务端
server = TcpServerSocket(bindAt: 9999)
) {
// 绑定端口
server.bind()
println("服务端已启动")
// 阻塞等待客户端的连接
try (client = server.accept()) {
println("服务端${client.localAddress}已连接客户端${client.remoteAddress}")
let data = "你好, 我是服务端"
println("发送数据: ${data}")
client.write(data.toArray())
println("发送完毕")
}
}
}
客户端项目
package Sender
// 导包
import std.net.*
import std.console.*
main () {
try (
// 客户端
client = TcpSocket("127.0.0.1", 9999)
) {
// 连接到服务端
client.connect()
println("客户端${client.localAddress}已启动")
println("连接到${client.remoteAddress}服务端")
// 接收客户端发送的数据
let buffer = Array<Byte>(1024, repeat: 0)
var len = 0
// 只要数据没有读完,就一直读
while (true) {
len = client.read(buffer)
if (len == 0) {
break
}
let data = String.fromUtf8(buffer[0..len])
println("数据: ${data}")
}
}
}
二、小结
本章为大家详细的介绍了仓颉编程语言中TCP协议网络编程的内容,下一章,为大家带来网络编程练习题的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)