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

文章目录

  • [第三十三章 UDP 客户端 服务器通信 - IPv4 和 IPv6](#第三十三章 UDP 客户端 服务器通信 - IPv4 和 IPv6)

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

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

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

java 复制代码
n.n.n.n

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

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

java 复制代码
h:h:h:h:h:h:h:h

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

建立互联网协议:

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

以下是 IPv4 传输:

java 复制代码
Server
 SET sobj=##class(%Net.UDP).%New(3001,"127.0.0.1")



  SET inmsg=sobj.Recv() 
java 复制代码
Client
 SET 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 传输:

java 复制代码
Server
 SET 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" } 
java 复制代码
Client
 SET 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类文档中找到。

相关推荐
eucalyptus-DE2 小时前
Nova 计算节点故障排查指南
服务器·openstack
志栋智能2 小时前
告别报告堆砌:超自动化巡检的智能分析与洞察
运维·服务器·网络·人工智能·自动化
小王C语言4 小时前
xshell免密登录
linux·运维·服务器
橙子圆1235 小时前
WebSocket
网络·websocket·网络协议
学习是种信仰6 小时前
远程控制服务器开关机——Wake-on-LAN(WOL 局域网唤醒)
服务器
不做菜鸟的网工6 小时前
OSPF NBMA 网络环境下的 Hub-and-Spoke
网络协议
model20056 小时前
虚拟环境安装yolo26
linux·运维·服务器
墨风如雪6 小时前
FRP、Tailscale、CF Tunnel 三个内网穿透方案我都用过,按场景分着用最稳
服务器
Cat_Rocky6 小时前
keepalived简单配置
linux·运维·服务器
开开心心就好6 小时前
一键扫描电脑重复文件的实用工具
linux·运维·服务器·随机森林·智能手机·excel·启发式算法