当前位置: 首页 > news >正文

跟我一起学“仓颉”编程语言-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协议网络编程的内容,下一章,为大家带来网络编程练习题的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

http://www.gsyq.cn/news/1484111.html

相关文章:

  • 终极指南:如何一键重置Cursor试用限制,告别“试用账户过多“错误
  • Mac Mouse Fix:如何让普通鼠标在macOS上超越苹果触控板体验
  • 避坑指南:Waymo数据集可视化工具Mayavi/Open3D环境配置与点云渲染实战
  • 全能旗舰版 DApp 交易所系统部署与实操指南
  • 大模型应用后端底座设计与高并发支撑实践
  • 三角洲行动护航系统源码部署与运营指南
  • 深入KEIL链接器:N32G45X串口打印背后,MicroLIB与标准C库的抉择与性能影响
  • 避坑指南:Xilinx FPGA里IDDR和ODDR原语的那些“坑”与最佳实践
  • 别再为HC-05配对发愁了!手把手教你用串口调试助手搞定主从蓝牙模块(附完整指令集)
  • 别只盯着CNN!手把手教你用Scikit-learn玩转Kaggle图像分类(Plant Seedlings保姆级教程)
  • 跟我一起学“仓颉”编程语言-跨语言互操作
  • 10美元鼠标秒变苹果触控板:Mac Mouse Fix 如何释放 macOS 隐藏的鼠标潜能
  • GalTransl完整指南:三步实现Galgame智能AI汉化的终极方案
  • 终极指南:让Windows Vista和Server 2008也能运行最新Python 3.14
  • LivePortrait深度解析:三分钟让静态人像开口说话的艺术
  • 如何打造智能家庭音乐中心:XiaoMusic小爱音箱音乐播放器完整指南
  • 2026年评价高的强磁磁钢/N52强磁铁优质公司推荐 - 行业平台推荐
  • emexDE:革命性iOS设备原生开发IDE,无需越狱即可在iPhone上编写iOS应用
  • 2026年质量好的内墙底层腻子粉/外墙抗开裂腻子粉/内墙抗裂腻子粉‌横向对比厂家推荐 - 行业平台推荐
  • NLP工业落地指南:多模态框架、结构化文档抽取与spaCy工程实践
  • 2026年全自动高精度过程校验仪/过程信号校验仪/压力校验装置/校验仪厂家推荐与选型指南 - 品牌宣传支持者
  • 2026年评价高的超强磁铁/N52强磁铁精选推荐公司 - 品牌宣传支持者
  • 2026年口碑好的湖南智能工业分析仪/智能工业分析仪/全自动工业分析仪批量采购厂家推荐 - 品牌宣传支持者
  • 国民技术N32G45X实战:用DMA搞定ADC多路采样,告别CPU轮询
  • UniWorld常见问题解决:从安装到训练的全方位故障排除指南
  • Virtual-Display-Driver:为Windows系统添加虚拟显示器的完整指南
  • 2026年评价高的超细碳酸钙/活性碳酸钙推荐品牌厂家 - 品牌宣传支持者
  • 2026年知名的检测机构/盐雾检测机构用户推荐 - 品牌宣传支持者
  • esp32开发与应用(oled屏幕显示)
  • C#玩转ModbusRTU:从报文生成到完整通讯,这些坑我帮你踩过了