码迷,mamicode.com
首页 > 其他好文 > 详细

Erlang练习-UDP

时间:2014-06-17 21:07:49      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   tar   color   

贴一下代码,例子是从别人那里直接抄来的:

-module(myudp).
-export([start/0, client/1]).

%% Server
start() ->
    spawn(fun() -> server(4000) end).
    
server(Port) ->
    {ok, Socket} = gen_udp:open(Port, [binary, {active, false}]),
    io:format("server opened socket:~p~n", [Socket]),
    loop(Socket).
    
loop(Socket) ->
    inet:setopts(Socket, [{active, once}]),
    receive
        {udp, Socket, Host, Port, Bin} ->
            io:format("server received:~p~n", [Bin]),
            gen_udp:send(Socket, Host, Port, Bin),
            loop(Socket)
    end.
    
%Client code
client(N) ->
    {ok, Socket} = gen_udp:open(0, [binary]),
    io:format("client opened socket=~p~n", [Socket]),
    ok = gen_udp:send(Socket, "localhost", 4000, N),
    Value = receive
                {udp, Socket, _, _, Bin} ->
                    io:format("client received:~p~n", [Bin])
                after 2000 ->
                    0
                end,
    gen_udp:close(Socket),
    Value.

尝试运行:

12> c("myudp").               
{ok,myudp}
13> myudp:start().
server opened socket:#Port<0.2217>
<0.70.0>
14> myudp:client("hello").
client opened socket=#Port<0.2218>
server received:<<"hello">>
client received:<<"hello">>
ok
15> myudp:client("it‘s a long story").
client opened socket=#Port<0.2219>
server received:<<"it‘s a long story">>
client received:<<"it‘s a long story">>
ok
16> myudp:client(<<"nothing">>).      
client opened socket=#Port<0.2220>
server received:<<"nothing">>
client received:<<"nothing">>
ok

话说,上面的直接使用引号的输入,和使用引号再使用尖括号的输入,效果是一样的。。。使用两个尖括号是什么?好像是在二进制的集合那里看到过这个符号??

Erlang练习-UDP,布布扣,bubuko.com

Erlang练习-UDP

标签:style   class   blog   code   tar   color   

原文地址:http://www.cnblogs.com/pied/p/3790087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!