2015-08-05 5 views
1

Как настроить интерфейс UDP в локальной сети с помощью Джулии? Кажется, я понимаю Base/socket.jl в репозитории Julia, но вряд ли есть какая-либо документация о том, как использовать функции.Настройка UDP с Julia

ответ

2

Да, документация по UDP по-прежнему отсутствует, но, возможно, мы сможем узнать, как использовать UDP через the TCP example. Вот мой тестовый код.

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) 
+0

Спасибо за ответ. Кажется, я получаю эту ошибку, что UDPSocket() не определен. Я на v 0.3.8. Это имеет значение? – nikamanth

+0

нет, просто измените 'UDPSocket()' на 'UdpSocket()'. [ссылка здесь] (https://github.com/JuliaLang/julia/blob/v0.3.8/base/socket.jl) – Gnimuc

+0

Я пробовал несколько вещей с UdpSocket() в Julia. Я никогда не мог закрыть сокет, который я создаю. @gnimuc Например. У Python есть простая команда (sock) – nikamanth

Смежные вопросы