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

仓颉语言---Socket编程

一、什么是Socket编程?

        1.定义

        Socket(套接字)可以被理解为网络上两个进程之间通信的端点。它是网络通信的抽象表示,封装了底层网络协议的复杂性,为应用程序提供了一个简单统一的接口。

        Socket 编程是一种网络编程范式,它允许不同计算机上的进程通过网络进行通信。这种通信可以发生在同一设备上的不同进程之间,也可以发生在不同地理位置的设备之间。Socket 编程提供了一种标准的方式来实现网络通信,是构建各种网络应用的基础。

        2.Socket编程的特点

                (1)网络抽象:隐藏了底层网络协议的细节,使开发者只需关注应用层逻辑

                (2)双向通信:支持数据的双向传输

                (3)进程标识:通过 IP 地址和端口号唯一标识网络中的进程

                (4)协议无关:可基于不同的传输层协议(如 TCP、UDP)

        3.Socket通信模型

        Socket通信基于客户端-服务器模型

        服务器:监听特定端口,等待客户端连接请求

        客户端:主动发起连接请求,与服务器建立通信

        4.Socket编程的使用场景

        Web服务器和客户端、即时通信应用(如聊天软件)、文件传输(如FTP、SFTP)、远程控制、网络游戏、分布式系统、物联网设备通信


二、Socket编程基于TCP协议和UDP协议的通信机制

        TCP(传输控制协议):面向连接、可靠、基于字节流的协议
        UDP(用户数据报协议):无连接、不可靠、基于数据报的协议
        1.socket基于TCP协议的通信机制

        仓颉客户端构建:

        

        仓颉服务器端构建:

        

        运行结果:

        客户端:

        

        服务器:

        

        2.Socket基于UDP协议的通信机制

        仓颉客户端构建:

                 

          仓颉服务器端构建:

        

        运行结果:


三、基于Socket编程,仓颉语言和java语言能否实现跨语言通信呢?

        尝试使用仓颉语言构建客户端,使用java语言构建服务器端

        1.仓颉语言构建客户端:

        2.java语言构建服务器端:

        

        运行结果:

        java服务器:

        

        仓颉客户端:

        

        在java中,接收一条消息,通常以换行符“\n”为作为一条消息的结束。所以仓颉作为客户端向java服务器发送的消息需要以“\n”结束,java这边才可以正常接收到消息

http://www.lryc.cn/news/2402220.html

相关文章:

  • Mysql的B-树和B+树的区别总结
  • 【Java EE初阶 --- 多线程(初阶)】多线程的实现案例
  • 制作一款打飞机游戏64:关卡设计
  • 开发常用的QT mql组件
  • Git操作记录
  • Vue Router的核心实现原理深度解析
  • Python趣学篇:用Pygame打造绚烂流星雨动画
  • AI系统负载均衡与动态路由
  • 山西省第十八届职业院校技能大赛 网络建设与运维赛项 样题
  • Stone 3D新版本发布,添加玩家控制和生物模拟等组件,增强路径编辑功能,优化材质编辑
  • 【Qt】之【Get√】【Bug】通过值捕获(或 const 引用捕获)传进 lambda,会默认复制成 const
  • 排序算法C语言实现
  • Python----目标检测(训练YOLOV8网络)
  • 构建 MCP 服务器:第一部分 — 资源入门
  • c# :this() 和 :base()区别
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十五讲)
  • Vue中实现表格吸底滚动条效果,列太多时左右滚动条始终显示在页面中
  • BeeWorks 协同办公能力:局域网内企业级协作的全场景重构
  • Mermaid 绘图--以企业权限视图为例
  • Redis(02)Win系统如何将Redis配置为开机自启的服务
  • C++课设:高效的日程管理系统
  • 功能测试、性能测试、安全测试详解
  • 提示词指南 --- 提示词的基本结构
  • UI学习—cell的复用和自定义cell
  • 20250605使用boot-repair来恢复WIN10和ubuntu22.04.6双系统的启动
  • 网络安全面试题目(无答案)
  • JavaScript性能优化实战
  • 接口安全SOAPOpenAPIRESTful分类特征导入项目联动检测
  • 视频汇聚平台EasyCVR“明厨亮灶”方案筑牢旅游景区餐饮安全品质防线
  • sql server如何创建表导入excel的数据