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

跟我一起学“仓颉”编程语言-网络通信三剑客

网络编程如今在这个数字化时代已经变成现代软件开发不可分割的一部分了,它的应用十分广泛,比如:Web应用,云计算、网络游戏、智能设备连接等。在网络通信中,最出名的就是下面要为大家介绍的网络通信三剑客:IP地址、端口和协议(这里只为大家做简单介绍,想详细了解网络这块内容的友友,可以参考我另一个系列文章:跟我一起学“网络安全”通识——计算机网络

一、IP地址

IP地址:用于识别网络中的主机,目前分为两种:IPV4地址和IPV6地址。

IPV4地址是32位二进制数组成,共分为4部分,每部分8位,取值范围是0到255,比如:192.168.1.1、127.0.0.1(本地地址),大家可以打开设置里的网络,查看自己当前网络下的IPV4地址。

IPV6地址是128位二进制数组成,共分为8部分,每部分取值用十六进制数表示,比如:2343:3335:3434:6765:1232:a23b:4cdf:01cc,IPV6地址的出现是为了解决IPV4地址不够用的问题。

为什么我们在生活中,见不到IPV4地址或IPV6地址呢?

为了方便用户使用,使用DNS(域名解析协议)将ip地址解析成了我们人类容易记住的样子,比如:www.bilibili.com。

二、端口

端口:用于在同一主机内部识别不同的进程或服务。

端口号是一个16位数字,取值为0-65535,分为3个区间

周知端口:0-1023,比如HTTP协议的80,

注册端口:1024-49151,分配给用户进程,比如:MySQL服务的3306

动态端口:49152-65535,这些端口由操作系统自动分配。

在网络编程中,用套接字(Socket)来表示一个ip地址和端口,在仓颉中,可以通过IPSocketAddress来解析IP地址和端口。

package Study // 导包 import std.net.* main () { let socketAddress = IPSocketAddress("127.0.0.1", 9999) // ip类型 println(socketAddress.isIPv4()) println(socketAddress.isIPv6()) // ip地址 println(socketAddress.address) // 端口号 println(socketAddress.port) }

三、协议

协议:定义了数据在网络中的传输方式和规则。

网络通信协议模型里,最经典的协议模型就是OSI模型和TCP/IP模型,无论是它们中的哪一个都有着最常见的协议UDP协议和TCP协议。

UDP(用户数据报协议)是一种面向无连接的网络协议,单个数据报大小不超过64KB。

TCP(传输控制协议)是一种面向连接的网络协议,单个数据的传输大小不做限制。

四、小结

本章为大家详细的介绍了仓颉编程语言中网络通信三剑客的内容,下一章,为大家带来UDP协议网络编程的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

http://www.jsqmd.com/news/972401/

相关文章:

  • 如何快速上手免费离线OCR工具:Umi-OCR完整使用指南
  • 别再乱升级了!Jupyter Notebook里遇到IProgress报错,试试这个环境隔离的解法
  • 告别双边滤波的卡顿:用OpenCV的guidedFilter函数5分钟搞定图像去噪与边缘保持
  • CacheP2P社区贡献指南:如何参与开源项目并改进P2P缓存技术
  • 完整指南:在PyTorch中部署Swinv2-base-patch4-window12-192-22k模型的最佳实践
  • Kali Linux下用Docker一键部署ARL灯塔:新手避坑与快速启动指南
  • 跟我一起学“仓颉”编程语言-UDP协议网络编程
  • Synapse ML:统一调度多框架的AI工程中枢
  • 3种方法使用nli-distilroberta-base-v2:sentence-transformers vs HuggingFace vs OpenMind
  • 从协议到代码:用Python/CANoe模拟ISO15031 OBD $02服务,自动解析车辆冻结帧数据
  • 手把手教你逆向分析数美滑动验证码:从JS断点到参数全解析(附避坑指南)
  • 亿级流量系统高可用架构设计实践
  • 别再被MicroLIB坑了!手把手教你为N32G45X串口打印配置标准C库printf
  • Python通达信数据解析三步法:从本地文件到实时行情的无缝衔接
  • Mermaid Live Editor深度实战:5步掌握高效图表可视化工具
  • 跟我一起学“仓颉”编程语言-TCP协议网络编程
  • 终极指南:从Nano Colors快速迁移到Picocolors的5个简单步骤
  • 如何用abcjs在5分钟内将文本乐谱变成专业五线谱
  • OptiScaler终极指南:让任何显卡都能享受DLSS级画质提升的免费神器
  • 终极指南:如何一键重置Cursor试用限制,告别“试用账户过多“错误
  • Sqribble:面向工程化的文档操作系统解析
  • 避坑指南:Waymo数据集可视化工具Mayavi/Open3D环境配置与点云渲染实战
  • Python中文词云开发全流程:从清洗分词到业务加权可视化
  • 5步解锁旧Mac新生命:OpenCore Legacy Patcher终极安装指南
  • Mac Mouse Fix:如何让普通鼠标在macOS上超越苹果触控板体验
  • WiVRn与OpenXR标准:如何确保跨平台兼容性的完整指南
  • 跟我一起学“仓颉”编程语言-网络编程练习题
  • 全能旗舰版 DApp 交易所系统部署与实操指南
  • Polygon Shredder技术解析:Three.js实现GPU粒子模拟的10个核心技巧
  • 三角洲行动护航系统源码部署与运营指南