【问题标题】:Julia - not able to capture looped back UDP packets in WiresharkJulia - 无法在 Wireshark 中捕获环回的 UDP 数据包
【发布时间】:2022-01-13 10:20:02
【问题描述】:

我这里有一个 UDP 发送程序:

# UDPSender.jl
using Sockets
sock = UDPSocket()
bind(sock,IPv4(200,120,1,1),1025)

data = [0x00, 0x20, 0x00, 0x10, 0x00, 0x01, 0x00, 0x3f, 0x00, 0x08, 0x00, 0x00, 0x0b, 0xb8, 0x64, 0x00]

send(sock,ip"200.120.1.1", 11028,data)

这里是 UDP 监听器:

# UDPListener.jl
using Sockets
s = Sockets.UDPSocket()
Sockets.bind(s, ip"200.120.1.1", 11028)
while true
    hostport, packet = Sockets.recvfrom(s)
      println(packet)
end

当两个文件在单独的 Julia 命令行中运行时, UDPListener.jl 中的语句println(packet) 能够在命令行中打印数据。 但是这些数据包不会被 Wireshark 捕获。

为什么 Wireshark 无法显示数据包?

操作系统:Windows 10 64 位。局域网环回

NB : 向 julia discourse site 询问相同的 qn,尚未获得批准。

【问题讨论】:

  • 你试过用不同的语言做类似的事情吗?这是 Julia 的网络堆栈特有的还是一般环回 UDP 流量的典型情况?
  • @StefanKarpinski 在 Matlab 中,这种代码使用广播 IP 地址 255.255.255.255。

标签: networking udp julia wireshark


【解决方案1】:

当我尝试将目标 IP 地址更改为 255.255.255.255 [广播?]

send(sock,ip"255.255.255.255", 11028,data)

权限被拒绝消息来了。

然后我把ip地址改成200.120.1.255 [多播?]

send(sock,ip"200.120.1.255", 11028,data)

然后 Wireshark 能够捕获数据包。

【讨论】:

    猜你喜欢
    • 2011-12-20
    • 2014-09-05
    • 2015-06-21
    • 2015-06-19
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多