使用 Julia 设置 UDP

Setting up UDP with Julia

如何使用Julia在局域网中设置UDP通信接口?我似乎在 Julia 存储库中认出了 Base/socket.jl,但几乎没有任何关于如何使用这些函数的文档。

是的,现在仍然缺少有关 UDP 的文档,但也许我们可以通过 the TCP example 学习如何使用 UDP。这是我的测试代码。

julia> VERSION
v"0.4.0-dev+6494"

julia> @async begin
         udpsock = UDPSocket()
         bind(udpsock,ip"127.0.0.1",2000)
         while true
           println(bytestring(recv(udpsock)))
         end
       end
Task (waiting) @0x000000010c2a1900

julia> sock = UDPSocket()
UDPSocket(Ptr{Void} @0x00007f91e430d530,1,Condition(Any[]),Condition(Any[]),Condition(Any[]))

julia> send(sock,ip"127.0.0.1",2000,"Hello World from the UDP")
Hello World from the UDP

请注意,如果您使用的是 julia v0.3.*,则应使用 UdpSocket() 而不是 UDPSocket()

更新:我忘记初始化(使用 bind())套接字,这导致 close(sock) 抛出错误。

julia> sock = UDPSocket()
UDPSocket(Ptr{Void} @0x00007f91e430d530,1,Condition(Any[]),Condition(Any[]),Condition(Any[]))

julia> bind(sock,ip"127.0.0.1",1000)
true

julia> send(sock,ip"127.0.0.1",2000,"Hello World from the UDP")
Hello World from the UDP

julia> close(sock)