为什么 小米 放弃erlang java

2025-04-09 10:44:03
推荐回答(1个)
回答1:

小米 放弃erlang java是因为不安全
erlang源码:模块tcp_listen
-module(tcp_listen).

-export([start/0,close/1]).
-define(PORT,5002).

start() ->
AA= << "我是汉字">>,
io:format("hello erlang ~w~n",[[AA,byte_size(AA)]]),
case gen_tcp:listen( ?PORT,[binary,{active,true},{packet,0}])
of

{ok,LSocket}->
io:format("listen port success ~w~n",[LSocket]),

spawn(fun() -> loop(LSocket) end) ,
{ok,LSocket}
;
{error,Reason}->
io:format("listen port error Reason: ~w~n",[Reason]),
{error,{cannot_listen,Reason}}
end .

%% server socket begin listen
loop(LSocket)->
io:format("begin listen lsocket: ~n",[]),
case gen_tcp:accept(LSocket)
of
{ok,Socket}->
io:format("receive client connect: ~w~n",[Socket]),
begin_receive(Socket),
spawn(fun()-> loop(LSocket) end)
;
{error,Reason}->
io:format("accept client error: ~w~n",[Reason])
end.

begin_receive(Socket)->
io:format("begin listen socket client data: ~n",[]),
receive
{tcp,Socket,Data}->
NewData= <>,
io:format("receive client data1: ~w~n",[NewData]),

gen_tcp:send(Socket,NewData) ,
begin_receive(Socket);

Data_2->
io:format("receive client data2: ~w~n",[Data_2])
end.

close(LSocket)->
gen_tcp:close(LSocket).