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

随心笔谈9个月前发布 admin
214 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章描述了一个Erlang程序实现Echo服务器的过程。程序通过进程代换语法启动 listen进程、接受客户端连接(accept),并处理客户端发送的数据。具体来说,服务器接收客户端的二进制数据,将其转换为文本并回复给客户端。服务器会循环处理客户端的请求,并在客户端关闭连接时关闭 listen进程。整个流程通过多个函数实现,包括启动 listen进程、接收数据、发送响应以及处理连接关闭。

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.

© 版权声明

相关文章