Erlang中的socket编程简单例子(二郎文化)一看就会

随心笔谈2年前发布 admin
207 0 0

文章摘要

这篇文章介绍了一个使用Erlang实现的Echo服务器程序。服务器通过`gen_tcp:listen`监听指定端口(1234),等待客户端连接。当客户端连接后,服务器读取数据并将二进制数据转换为文本格式。服务器处理客户端数据后,通过`gen_tcp:send`将响应数据发送回客户端。服务器采用循环模式持续处理客户端的连接请求,直到客户端断开连接。整个程序利用了Erlang的网络编程模块,实现了简单而高效的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.

© 版权声明

相关文章