多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > (2)小項(xiàng)目----建立erlang服務(wù)端

(2)小項(xiàng)目----建立erlang服務(wù)端

來源:程序員人生   發(fā)布時(shí)間:2015-01-05 08:35:38 閱讀次數(shù):3360次

本來打算在window下在quick里面嵌入protobuf,發(fā)現(xiàn)毛病很多。研究1天都沒弄好。只能休息下弄下erlang服務(wù)端,先將服務(wù)端弄好再回頭嵌入protobuf到quick。

在window下不能用rebar,只能自己管理。erlang 是自己弱項(xiàng)。做個(gè)簡單的服務(wù)端基于OTP框架,是1個(gè)標(biāo)準(zhǔn)的實(shí)現(xiàn),以后再漸漸擴(kuò)大吧。

(1).建立好目錄doc,ebin,include,priv,src,testClient

(2).在ebin目錄下加入元數(shù)據(jù)server.app,用來啟動(dòng)application

(3).在src下建立bz_server_sup.erl,bz_server_app.erl,bz_server.erl 3個(gè)文件。

bz_server_app.erl 用來打包程序,啟動(dòng),關(guān)閉。只提供start/2,stop/1兩個(gè)函數(shù)

start(_StartType,_StartArgs) ->
{ok,LSock} = gen_tcp:listen(?DEFAULT_PORT,?TCP_OPTIONS),
case bz_server_sup:start_link(LSock) of 
{ok,Pid} ->
bz_server_sup:start_child(),
{ok,Pid};
Other ->
io:format("bz_server_app Listen error : ~p !",[Other]),
{error,Other}
end.


stop(_State) ->
ok.
 

bz_server_sup.erl 監(jiān)聽者頂級(jí)監(jiān)聽,規(guī)定了子監(jiān)聽的啟動(dòng)

start_link(LSock) ->
supervisor:start_link({"127.0.0.1",?SERVER},?MODULE,[LSock]).

start_child() ->
supervisor:start_child(?SERVER,[]).


%%Supervisor callback
init([LSock]) ->
Server = {bz_server, {bz_server, start_link, [LSock]},
              temporary, brutal_kill, worker, [bz_server]},
    Children = [Server],
    RestartStrategy = {simple_one_for_one, 0, 1},
    {ok, {RestartStrategy, Children}}.

bz_server.erl.    gen_server ,負(fù)責(zé)等待連接以后的多數(shù)實(shí)現(xiàn)就在這里實(shí)現(xiàn)。以后打算就在這里實(shí)現(xiàn)重客戶端發(fā)送過來的消息在分發(fā)下去。

%%-------------private---------------------
accept(ListenSocket) ->
case gen_tcp:accept(ListenSocket) of
{ok,Socket} ->
io:format("<<<<<<<<<<start connect>>>>>>>>> "),
io:format("accept client socket : ~p ",[Socket]),
gen_tcp:controlling_process(Socket, self()),
bz_server_sup:start_child();
{error,Reason} ->
io:format("accept error reason : ~p ",[Reason]),
accept(ListenSocket);
_Res ->
io:format("accept unexpected result : ~p ",[_Res]),
accept(ListenSocket)
end.


handle_info({tcp,Socket,RawData},State) ->  %%數(shù)據(jù)收取分發(fā)
io:format("Socket :~p , RawData : ~p ",[Socket,RawData]),
%%gen_tcp:send(Socket, "erlang server bin"),  
{noreply,RawData};

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 精品国产v无码大片在线观看 | 伦理免费在线观看 | 亚洲α片 | 欧美在线视频二区 | 爱爱www在线观看视频高清 | 羞羞免费网页登界面入口 | a视频在线| 午夜视频播放 | 久久在线免费观看视频 | 国产精品一区二区久久精品 | 午夜影院在线观看免费 | 伊人网视频在线观看 | 亚洲第成色999久久网站 | 欧美一卡二卡3卡4卡无卡免费 | 日本在线观看中文字幕 | 久99久爱精品免费观看视频 | 午夜在线精品不卡国产 | 亚洲不卡一区二区三区 | 春色视频网站 | 免费亚洲网站 | 伊人久久91 | 亚洲欧美性另类春色 | 国产女人成人精品视频 | 免费日韩精品 | 国产小网站| 黄色免费观看视频网站 | 亚洲专区中文字幕 | 国产精品日韩欧美一区二区 | 欧美性色欧美a在线观看 | 亚洲图片小说综合 | 欧美日本在线播放 | 台湾成人性视频免费播放 | 亚洲一区二区三区高清网 | 亚洲欧美中文字幕高清在线一 | 欧美韩国日本在线 | 国产日韩一区二区三区在线观看 | 欧美日韩另类综合 | 国产女人伦码一区二区三区不卡 | 羞羞动漫免费看网站 | 欧美日韩国产最新一区二区 | 校园春色另类 |