• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Erlang中的socket编程简单例子

    Erlang 中gen_tcp 用于编写TCP程序,gen_udp用于编写UDP程序。一个简单的TCP服务器echo示例

    复制代码 代码如下:

    Start_echo_server()->
             {ok,Listen}= gen_tcp:listen(1234,[binary,{packet,4},{reuseaddr,true},{active,true}]),
             {ok,socket}=get_tcp:accept(Listen),
             gen_tcp:close(Listen),
             loop(Socket).
     
    loop(Socket) ->
             receive
                      {tcp,Socket,Bin} ->
                                io:format(“serverreceived binary = ~p~n”,[Bin])
                                Str= binary_to_term(Bin),
                                io:format(“server  (unpacked) ~p~n”,[Str]),
                                Reply= lib_misc:string2value(Str),
                                io:format(“serverreplying = ~p~n”,[Reply]),
                                gen_tcp:send(Socket,term_to_binary(Reply)),
                                loop(Socket);
                       {tcp_closed,Socket} ->
                                Io:format(“ServerSocket closed ~n”)
             end.

    Tcp 的echo客户端示例:
    复制代码 代码如下:

    echo_client_eval(Str) ->
             {Ok,Socket} = gen_tcp:connect(“localhost”,2345,[binary,{packet,4}]),
             ok= gen_tcp:send(Socket, term_to_binary(Str)),
             receive
                       {tcp,Socket,Bin}->
                                Io:format(“Clientreceived binary  = ~p~n”,[Bin]),
                                Val=binary_to_term(Bin),
                                io:format(“Clientresult = ~p~n”,[Val]),
                                gen_tcp:close(Socket)
             end.

    UDP server示例
    复制代码 代码如下:

    udp_demo_server(Port) ->
             {ok,Socket}= gen_udp:open(Open,[Binary]),
             loop(Socket).
    Loop(Socket)->
             receive
                       {udp,Socket,Host,Port,Bin}->
                                BinReply= …,
                                gen_udp:send(Socket,Host,Port,BinReply),
                                loop(Socket)
             End.

    UDP client 示例:
    复制代码 代码如下:

    udp_demo_client(Request) ->
             {ok,Socket}= gen_udp:open(0,[Binary]),
             ok= gen_udp:send(Socket,”localhost”,1234,Request),
             Value=    receive
                                         {udp,Socket,_,_,Bin}-> {ok,Bin}
                                after2000 -> error
                                end,
             gen_udp:close(Socket),
             Value

    注意,因为UDP是不可靠的,一定要设一个超时时间,而且Reqeust最好小于500字节。
    WebSocket, JS 和Erlang相结合,能够实现Web的绝大多数功能。

    上一篇:Erlang中的OTP简介
    下一篇:Erlang中的并发程序简介
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Erlang中的socket编程简单例子 Erlang,中的,socket,编程,简单,