欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Erlang中的socket編程簡(jiǎn)單例子

 更新時(shí)間:2015年03月09日 09:12:09   投稿:junjie  
這篇文章主要介紹了Erlang中的socket編程簡(jiǎn)單例子,本文給出了TCP服務(wù)器echo示例、Tcp 的echo客戶(hù)端示例、UDP server示例、UDP client 示例,需要的朋友可以參考下

Erlang 中g(shù)en_tcp 用于編寫(xiě)TCP程序,gen_udp用于編寫(xiě)UDP程序。一個(gè)簡(jiǎn)單的TCP服務(wù)器echo示例

復(fù)制代碼 代碼如下:

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客戶(hù)端示例:
復(fù)制代碼 代碼如下:

echo_client_eval(Str) ->
         {Ok,Socket} = gen_tcp:connect(“l(fā)ocalhost”,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示例
復(fù)制代碼 代碼如下:

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 示例:
復(fù)制代碼 代碼如下:

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

注意,因?yàn)閁DP是不可靠的,一定要設(shè)一個(gè)超時(shí)時(shí)間,而且Reqeust最好小于500字節(jié)。
WebSocket, JS 和Erlang相結(jié)合,能夠?qū)崿F(xiàn)Web的絕大多數(shù)功能。

相關(guān)文章

  • CentOS 6.5源碼安裝Erlang教程

    CentOS 6.5源碼安裝Erlang教程

    這篇文章主要介紹了CentOS 6.5源碼安裝Erlang教程,本文講解了源碼編譯安裝的過(guò)程和遇到的一些錯(cuò)誤處理方法,需要的朋友可以參考下
    2015-01-01
  • Erlang中的函數(shù)與流程控制介紹

    Erlang中的函數(shù)與流程控制介紹

    這篇文章主要介紹了Erlang中的函數(shù)與流程控制介紹,本文先是講解了函數(shù)的一些知識(shí),然后講解了case語(yǔ)句和if語(yǔ)句及算術(shù)表達(dá)式等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • Erlang中的注冊(cè)進(jìn)程使用實(shí)例

    Erlang中的注冊(cè)進(jìn)程使用實(shí)例

    這篇文章主要介紹了Erlang中的注冊(cè)進(jìn)程使用實(shí)例,本文給出正常進(jìn)程通信實(shí)例和使用使用注冊(cè)進(jìn)程通信實(shí)例,需要的朋友可以參考下
    2015-02-02
  • Erlang并發(fā)編程介紹

    Erlang并發(fā)編程介紹

    這篇文章主要介紹了Erlang并發(fā)編程介紹,本文講解了進(jìn)程的創(chuàng)建 、進(jìn)程間通信、超時(shí)設(shè)置以及給出代碼實(shí)例,需要的朋友可以參考下
    2015-01-01
  • erlang?on_load_function_failed排查過(guò)程解析

    erlang?on_load_function_failed排查過(guò)程解析

    這篇文章主要為大家介紹了erlang?on_load_function_failed的排查過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Erlang中遍歷取出某個(gè)位置的最大值代碼

    Erlang中遍歷取出某個(gè)位置的最大值代碼

    這篇文章主要介紹了Erlang中遍歷取出某個(gè)位置的最大值代碼,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03
  • Erlang中的模塊與模式匹配介紹

    Erlang中的模塊與模式匹配介紹

    這篇文章主要介紹了Erlang中的模塊與模式匹配介紹,本文分別對(duì)模塊與模式匹配做了講解,需要的朋友可以參考下
    2015-03-03
  • Erlang中3種生成隨機(jī)數(shù)的方法

    Erlang中3種生成隨機(jī)數(shù)的方法

    這篇文章主要介紹了Erlang中3種生成隨機(jī)數(shù)的方法,它們分別是random:uniform()、erlang:now()、crypto:strong_rand_bytes(N),需要的朋友可以參考下
    2015-01-01
  • Erlang中的映射組Map詳細(xì)介紹

    Erlang中的映射組Map詳細(xì)介紹

    這篇文章主要介紹了Erlang中的映射組Map詳細(xì)介紹,本文講解了創(chuàng)建映射組、更新映射組、兩種操作符的區(qū)別、映射的增加、刪除、獲取等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • Erlang初學(xué):Erlang的一些特點(diǎn)和個(gè)人理解總結(jié)

    Erlang初學(xué):Erlang的一些特點(diǎn)和個(gè)人理解總結(jié)

    這篇文章主要介紹了Erlang初學(xué):Erlang的一些特點(diǎn)和個(gè)人理解總結(jié),本文總結(jié)了函數(shù)式編程、一切都是常量、輕量進(jìn)程、進(jìn)程端口映射及典型缺點(diǎn)等內(nèi)容,需要的朋友可以參考下
    2015-02-02

最新評(píng)論