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

ops/2024/11/28 5:53:08/

文章目录

  • 第三十三章 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/ops/137275.html

相关文章

NExT-GPT: Any-to-Any Multimodal LLM

NExT-GPT: Any-to-Any Multimodal LLM ICML 2024 Oral 整体框架 Motivation 大多数多模态模型只关注输入端的多模态理解部分模型有训练输出图片和文本交互的LLM现有的any-to-any LLM存在一定的问题: 不同模块之间的信息传递完全基于LLM产生的离散文本,级…

w058基于web的美发门店管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文件&#xff0…

d3-contour 生成等高线图

D3.js 是一个强大的 JavaScript 库,用于创建动态、交互式数据可视化。d3-contour 是 D3.js 的一个扩展模块,用于生成等高线图(contour plots)。 属性和方法 属性 x: 一个函数,用于从数据点中提取 x 坐标。y: 一个函…

Excel求和如何过滤错误值

一、问题的提出 平时,我们在使用Excel时,最常用的功能就是求和了,一说到求和你可能想到用sum函数,但是如果sum的求和区域有#value #Div等错误值怎么办?如下图,记算C列中工资的总和。 直接用肯定会报错&…

Python屏幕截图

文章目录 一、安装Pillow库二、导入ImageGrab模块三、截取屏幕1. 截取全屏2. 截取特定区域 四、保存截图五、完整示例六、注意事项 Python使用ImageGrab截图主要依赖于Pillow库(PIL库的一个分支),该库提供了ImageGrab模块来实现屏幕截图功能。…

从0开始深度学习(31)——循环神经网络

前面介绍了 n n n元语法模型,里面有一个叫隐状态,也被叫做隐藏变量,循环神经网络(recurrent neural networks,RNNs) 是具有隐状态的神经网络。 1 无隐状态的神经网络 以单隐藏层的多层感知机为例&#xff…

C++设计模式之组合模式实践原则

在实现组合模式时,为了确保符合软件设计原则,需要考虑以下几个重要方面: 1. 单一职责原则(Single Responsibility Principle, SRP) 考虑:组合模式中的每个类应只负责一个特定的任务。例如,Com…

python+django自动化部署日志采用‌WebSocket前端实时展示

一、开发环境搭建和配置 # channels是一个用于在Django中实现WebSocket、HTTP/2和其他异步协议的库。 pip install channels#channels-redis是一个用于在Django Channels中使用Redis作为后台存储的库。它可以用于处理#WebSocket连接的持久化和消息传递。 pip install channels…