第三十三章 UDP 客户端 服务器通信 - IPv4 和 IPv6

server/2024/11/28 5:24:24/

文章目录

  • 第三十三章 UDP 客户端 服务器通信 - IPv4 和 IPv6

第三十三章 UDP 客户端 服务器通信 - IPv4 和 IPv6

UDP 支持 IPv4IPv6 互联网协议。由于这些协议不兼容,服务器和客户端都必须使用相同的Internet协议,否则传输将失败。

IPv4 地址具有以下格式。 n0255 范围内的十进制整数:

n.n.n.n

可以将 IPv4 协议指定为"0.0.0.0" 。

IPv6 地址具有以下完整格式。 h是一个具有四个十六进制数字的十六进制数:

h:h:h:h:h:h:h:h

通常,IPv6 地址的缩写方式是消除前导零并用双冒号 (::) 替换连续的零部分; IPv6 地址中只能使用一个双冒号。通过使用 IPv4 缩写规则,可以将 IPv6 协议指定为“::” (意味着所有 8h部分的值为 0000)。

建立互联网协议:

  • 客户端必须在 %New() 方法中建立 IPv4IPv6。默认为 IPv4
  • 这必须与GetHostAddr()方法中指定并在Send()方法中提供(以二进制形式)的 IPv4IPv6 协议匹配。

以下是 IPv4 传输:

ServerSET sobj=##class(%Net.UDP).%New(3001,"127.0.0.1")SET inmsg=sobj.Recv() 
ClientSET cobj=##class(%Net.UDP).%New()   /* the default is IPv4 */SET bhost=##class(%Net.UDP).GetHostAddr("127.0.0.1")SET outmsg="this is the message to send"WRITE cobj.Send(outmsg,bhost,3001) 

以下是 IPv6 传输:

ServerSET x=##class(%SYSTEM.INetInfo).IsIPV6Enabled()IF x=1 {SET sobj=##class(%Net.UDP).%New(3001,"::1")SET inmsg=sobj.Recv() }ELSE {WRITE "IPv6 not enabled" } 
ClientSET cobj=##class(%Net.UDP).%New(0,"::")SET bhost=##class(%Net.UDP).GetHostAddr("::1")SET outmsg="this is the message to send"WRITE cobj.Send(outmsg,bhost,3001) 

处理主机地址的方法可在%SYSTEM.INetInfo类文档中找到。


http://www.ppmy.cn/server/145538.html

相关文章

基于VMware 的 deepin 系统 学习 安装 1Panel mysql redis

基于VMware 的 deepin 系统 学习 虚拟机安装镜像 选择安装的deepin23镜像 纯粹个人使用的虚拟机配置 选择第二个选项安装 虚拟机而已 直接全盘安装 缺了几个图 都是默认 然后完成安装后重启到如下界面 填写你的主机名称 账号密码 然后就是进入到了主页面可以愉快的开始使…

AI 助力开发新篇章:云开发 Copilot 深度体验与技术解析

本文 一、引言:技术浪潮中的个人视角1.1 AI 和低代码的崛起1.2 为什么选择云开发 Copilot? 二、云开发 Copilot 的核心功能解析2.1 自然语言驱动的低代码开发2.1.1 自然语言输入示例2.1.2 代码生成的模块化支持 2.2 实时预览与调整2.2.1 实时预览窗口功能…

Python学习指南 + 谷歌浏览器如何安装插件

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 前言 Python 官方文档的使用 谷歌浏览器中如何安装插件 前言 在学习Python时,我们可能会出现这样的困惑&#x…

QT 跨平台实现 SSDP通信 支持多网卡

一.多网卡场景 在做SSDP通信的时候,客户端发出M-search命令后, 主机没有捕捉到SSDP的消息,你可以查看下,是不是局域网下,既打开了wifi,又连接了本地网络,mac os下很容易出现这种场景。此时,我们发送消息时,需要遍历所有网卡并发送M-search命令。 二.QT相关接口介绍 1…

动态定时任务在Spring Boot中集成Quartz的实践

在现代软件开发中,定时任务是一个常见的需求,比如定时备份数据、定时发送邮件等。Spring Boot提供了对Quartz定时任务的集成支持,使得我们可以轻松地在Spring Boot应用中实现定时任务。本文将介绍如何在Spring Boot中集成Quartz,并…

如何搭建一个小程序:从零开始的详细指南

在当今数字化时代,小程序以其轻便、无需下载安装即可使用的特点,成为了连接用户与服务的重要桥梁。无论是零售、餐饮、教育还是娱乐行业,小程序都展现了巨大的潜力。如果你正考虑搭建一个小程序,本文将为你提供一个从零开始的详细…

使用OpenCV实现图像拼接

摘要 图像拼接技术在计算机视觉领域有着广泛的应用,如全景图生成、卫星影像拼接等。本文将详细介绍如何使用OpenCV库实现图像拼接,包括特征点检测、描述符提取、特征匹配、透视变换等关键步骤。通过一个实际的代码示例,我们将逐步展示如何将…

音视频技术扫盲之预测编码的基本原理探究

预测编码是一种数据压缩技术,广泛应用于图像、视频和音频编码等领域。其基本原理是利用数据的相关性,通过对当前数据的预测和实际值与预测值之间的差值进行编码,从而实现数据压缩的目的。 一、预测编码的基本概念 预测编码主要包括预测器和…