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的绝大多数功能。
更新日志
- 【驰放沙发(J)】VA-2024-WinterTime,Vol.12(FLAC)
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 韩红《青藏高原+红+韩红精选集》3CD[WAV分轨][1.7G]
- 高胜美《经典金选》1991-1994 4CD[WAV整轨][1.9G]
- 【迷幻电音】AstralWaves-2023-Singles,RemixesandRaritiesII(FLAC)
- 中唱唱片群星《好歌珍藏-游子情深》2CDWAV
- 张国荣.2011-极品天碟LPCD45II(雨果版)【环球】【WAV+CUE】
- 张学友《醒着做梦》[DFF][1.1G]
- 刘惜君 《如我》[WAV分轨][403M]
- 白玛多吉《梦》限量1:1母盘直刻[低速原抓WAV+CUE][508M]
- 魏金栋-金歌新曲-梦里全是桂花香2CD[天凡之音][WAV+CUE]
- 鲛岛有美子-樱花赋HQCD[天龙][WAV+CUE]
- [In-Akustik7506]ReferenceSoundEdition-GreatWomenOfSong(2014)HQCD[WAV+CUE]
- 日本EMI超级名盘TOGE-11035-36BeethovenFidelio-Furtwngler
- 宝丽金50周年2010《古典篇》3CD限定盘[低速原抓WAV+CUE]