一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Erlang - Erlang中的socket編程簡單例子

Erlang中的socket編程簡單例子

2020-05-28 11:26腳本之家 Erlang

這篇文章主要介紹了Erlang中的socket編程簡單例子,本文給出了TCP服務器echo示例、Tcp 的echo客戶端示例、UDP server示例、UDP client 示例,需要的朋友可以參考下

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的絕大多數功能。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 九9热这里真品 | 操破苍穹在线 | 免费理伦片在线观看全网站 | 成年人免费观看视频网站 | 69日本xxⅹxxxxx19 | 91制片厂制作传媒网站 | 第一次出血videos | 歪歪漫画a漫入口 | 女人又色又爽又黄 | 日本一区免费观看 | 男人j放进女人的p免费看视频 | 欧美国产日本精品一区二区三区 | 日本 片 成人 在线 日b视频免费 | 日本黄色录像视频 | sxx免费看视频在线播放 | 99pao在线视频精品免费 | 亚洲视频在线一区二区三区 | 俄罗斯激情性孕妇孕交大全 | 护士伦理片 | 99re热这里只有精品 | 大象传媒短视频网站 | 亚洲视频免 | 精品国产麻豆AV无码 | 欧美成人三级伦在线观看 | 欧美精品国产第一区二区 | 出轨同学会免费观看 | 狠狠色狠狠色综合婷婷tag | 日本制服丝袜 | 调教老师肉色丝袜的故事 | 国产美女做爰免费视频网址 | 国产真实乱子伦xxxxchina | 欧美视频网址 | 4s4s4s4s色大众影视 | 亚洲日本中文字幕天堂网 | 好男人资源在线观看免费的 | 国产成人无精品久久久久国语 | 无码人妻少妇色欲AV一区二区 | 任你操视频在线观看 | 精新精新国产自在现拍 | 日本黄色大片网站 | 国产欧美久久一区二区 |