2021-01-30

-module(udp_test).
-export([start_server/0,client/1]).
start_server()->
spawn(fun()->server(4000) end).

server(Port)->
{ok,Socket}=gen_udp:open(Port,[binary]),
io:format(“server opened socket:pn”,[Socket]),
loop(Socket).

loop(Socket)->
receive
{udp,Socket,Host,Port,Bin}=Msg->
io:format(“server received:pn”,[Msg]),
N=binary_to_term(Bin),
Fac=fac(n),
gen_udp:send(Socket,Host,Port,term_to_binary(Fac)),
loop(Socket)
end.
fac(0)->1;
fac(N)->N*fac(N-1).

client(N)->
{ok,Socket}=gen_udp:open(0,[binary]),
io:format(“client opened socket=pn”,[Socket]),
ok=gen_udp:send(Socket,“localhost”,8000,term_to_binary(N)),
Value=receive
{udp,Socket,,,Bin}=Msg->
io:format(“client recieved:pn”,[Msg]),
binary_to_term(Bin)
after 4000->
17
end,
gen_udp:close(Socket),
Value.
在这里插入图片描述
Erlang程序设计(第2版)【瑞典】Joe Armstrong 著 牛化成译 【M】北京:中国工信出版社和人民邮电出版社

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值