青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評(píng)論 :: 0 Trackbacks
公告
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網(wǎng)游開發(fā)(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊(cè)
公告照片
搜索
積分與排名
積分 - 659884
排名 - 25
最新評(píng)論
1.?re: boost::asio::spawn 將一統(tǒng)C++網(wǎng)絡(luò)庫(kù)
asio 成為C++首選網(wǎng)絡(luò)庫(kù)
--linda
2.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--金慶
3.?re: mingw編譯OrzNet
能發(fā)送一個(gè)mingw編譯好的OrzNet庫(kù)給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--bigbad
5.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯(cuò)誤(11060)
2.?SVN中邪惡的replace(10986)
3.?VS2005編譯libevent(10431)
4.?混音算法的學(xué)習(xí)與研究(10238)
5.?C調(diào)用lua腳本的效率測(cè)試(9020)
評(píng)論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯(cuò)誤(18)
4.?C++引用優(yōu)于指針(17)
5.?ACE與ASIO之間關(guān)于Socket編程的比較(16)
Erlang簡(jiǎn)單并行服務(wù)器
Erlang簡(jiǎn)單并行服務(wù)器
(金慶的專欄)
Erlang并行服務(wù)器為每個(gè)Tcp連接創(chuàng)建對(duì)應(yīng)的連接進(jìn)程,處理客戶端數(shù)據(jù)。
參考 Erlang程序設(shè)計(jì)(第2版)
17.1.3 順序和并行服務(wù)器
并行服務(wù)器的訣竅是:每當(dāng)gen_tcp:accept收到一個(gè)新連接時(shí)就立即分裂一個(gè)新進(jìn)程。
為每個(gè)新套接字連接創(chuàng)建一個(gè)并行進(jìn)程。
-module(gs_svr).
-author("jinqing").
-behaviour(gen_server).
%% API
-export([start_link/0]).
init([]) ->
gs_listener:start_parallel(),
{ok, #{}}.
gs_svr(GameServer gen_server)啟動(dòng)Tcp監(jiān)聽,并維護(hù)連接,如連接計(jì)數(shù),發(fā)送廣播。
start_parallel()創(chuàng)建監(jiān)聽端口,然后創(chuàng)建連接進(jìn)程。
start_parallel() ->
Port = server_csv:get_my_port(),
lager:info("Starting game server on port ~p...", [Port]),
{ok, ListenSocket} = gen_tcp:listen(Port,
[binary, {packet, 4},
{packet_size, 256 * 1024}, % limit packet size
{reuseaddr, true},
{nodelay, true},
{backlog, 999999},
{active, once}]),
connection:spawn_connection(ListenSocket).
spawn_connection()創(chuàng)建連接進(jìn)程。每接受一個(gè)連接就再創(chuàng)建一個(gè)新的連接進(jìn)程。
-module(connection).
-author("jinqing").
%% API
-export([spawn_connection/1]).
-export([parallel_connect/1, loop/2]).
-spec spawn_connection(ListenSocket :: gen_tcp:socket()) -> pid().
spawn_connection(ListenSocket) ->
spawn(fun() -> ?MODULE:parallel_connect(ListenSocket) end).
-spec parallel_connect(ListenSocket :: gen_tcp:socket()) -> ok.
parallel_connect(ListenSocket) ->
{ok, Socket} = gen_tcp:accept(ListenSocket),
spawn_connection(ListenSocket),
gs_svr:cast_connection_new(self()),
ConnStat = conn_stat:new(),
erlang:send_after(1000, self(), timer_sec),
try ?MODULE:loop(Socket, ConnStat)
catch
Type:E -> lager:error("loop() ~p:~p. ~p",
[Type, E, erlang:get_stacktrace()])
end,
gs_svr:cast_connection_ended(self()),
ok.
-spec loop(Socket :: gen_tcp:socket(), ConnStat :: conn_stat:conn_stat()) -> any().
loop(Socket, ConnStat) ->
receive
{tcp, Socket, Bin} ->
NewConnStat = rpc_handler:handle_bin(Socket, Bin, ConnStat),
inet:setopts(Socket, [{active, once}]),
NewConnStat2 = cutil_dos_checker:on_data(size(Bin), NewConnStat),
?MODULE:loop(Socket, NewConnStat2#{idle_sec=>0});
{tcp_closed, Socket} ->
save_on_end(ConnStat);
{tcp_error, Socket, Reason} ->
save_on_end(ConnStat);
{gs_to_connection, Msg} ->
NewConnStat = handle_gs_msg(Msg, Socket, ConnStat),
?MODULE:loop(Socket, NewConnStat);
timer_sec ->
case conn_timer:timer_sec(ConnStat) of
{ok, NewConnStat} ->
erlang:send_after(1000, self(), timer_sec),
?MODULE:loop(Socket, NewConnStat);
end;
Other ->
lager:error("Unknown msg: ~p", [Other]),
?MODULE:loop(Socket, ConnStat)
end. % This is tail-recursive.
缺點(diǎn)是連接進(jìn)程沒有加入監(jiān)控樹。gs_svr出錯(cuò)重啟時(shí),連接進(jìn)程connection應(yīng)該斷開并退出。
posted on 2015-07-28 15:13
金慶
閱讀(517)
評(píng)論(0)
編輯
收藏
引用
所屬分類:
2. 網(wǎng)游開發(fā)
、
7. Erlang
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
How are dtLinks created in NavMesh
UE4 Blueprint Multiple Event BeginPlay
第9代游戲主機(jī)
Canvas Scaler 的3種模式
幀同步是否允許客戶端指定命令幀號(hào)
rpc應(yīng)答太快造成請(qǐng)求超時(shí)
測(cè)試 tolua 例子 TestErrorStack
lua變量缺少local造成unity死鎖
C# tolua 之間互傳 byte[]
Unity使用異步grpc
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
久久久久久夜
|
国产精品美女久久久久av超清
|
欧美一区二区私人影院日本
|
中国成人亚色综合网站
|
中日韩高清电影网
|
亚洲一区二区视频在线
|
性色av一区二区三区
|
久久久久久久999精品视频
|
玖玖精品视频
|
亚洲日本一区二区三区
|
亚洲精品中文在线
|
亚洲欧美另类国产
|
久久综合国产精品台湾中文娱乐网
|
免费在线观看日韩欧美
|
欧美特黄a级高清免费大片a级
|
国产精品日韩精品欧美在线
|
曰韩精品一区二区
|
在线视频欧美日韩精品
|
久久精品一区二区三区四区
|
亚洲国产欧美一区二区三区久久
|
中文国产亚洲喷潮
|
久久综合福利
|
国产日产精品一区二区三区四区的观看方式
|
国产日本亚洲高清
|
一本一本a久久
|
久久男人资源视频
|
亚洲视频一区二区在线观看
|
欧美一区在线看
|
欧美成人亚洲成人日韩成人
|
国产免费观看久久黄
|
亚洲精品少妇
|
久久久噜噜噜久久中文字幕色伊伊
|
亚洲国产精品一区二区久
|
欧美一区二区视频在线观看
|
欧美午夜大胆人体
|
亚洲美女淫视频
|
久久综合久久综合这里只有精品
|
一区二区成人精品
|
欧美精品一区二区三区很污很色的
|
亚洲小说欧美另类婷婷
|
欧美xart系列在线观看
|
欧美亚洲一区二区在线观看
|
国产精品video
|
99精品视频免费在线观看
|
毛片一区二区三区
|
欧美呦呦网站
|
国产亚洲成精品久久
|
亚洲欧美影院
|
亚洲天堂男人
|
国产精品国产三级国产aⅴ浪潮
|
日韩一区二区精品
|
久久香蕉国产线看观看网
|
久久综合久久综合久久综合
|
国产精品一区二区你懂的
|
亚洲欧美日产图
|
亚洲一区免费看
|
国产精品卡一卡二卡三
|
亚洲免费影视第一页
|
亚洲一本大道在线
|
国产精品乱码久久久久久
|
午夜精品国产更新
|
亚洲欧美一区二区三区在线
|
国产欧美日韩在线视频
|
久久久999精品免费
|
久久成人免费电影
|
亚洲第一精品福利
|
亚洲激情校园春色
|
欧美三区在线观看
|
欧美在线3区
|
久久精品99国产精品日本
|
在线成人欧美
|
91久久久在线
|
欧美性天天影院
|
久久精品观看
|
美女视频网站黄色亚洲
|
日韩西西人体444www
|
99热在这里有精品免费
|
国产精品亚洲а∨天堂免在线
|
欧美有码在线视频
|
久久一区二区视频
|
一道本一区二区
|
亚洲综合国产精品
|
1769国产精品
|
日韩天天综合
|
国内精品美女在线观看
|
亚洲国产日韩在线一区模特
|
国产精品日韩高清
|
女人色偷偷aa久久天堂
|
欧美日本亚洲
|
久久精品二区三区
|
欧美日本国产在线
|
久久精品国产免费观看
|
欧美成人中文字幕在线
|
翔田千里一区二区
|
欧美激情一区二区三区在线视频观看
|
亚洲一区在线观看免费观看电影高清
|
欧美一区二区三区视频
|
日韩视频二区
|
久久成人久久爱
|
亚洲一区综合
|
免费视频一区
|
久久国产精品久久w女人spa
|
欧美日韩成人在线
|
美日韩免费视频
|
国产精品日韩久久久
|
亚洲国产一二三
|
影音先锋亚洲精品
|
亚洲综合精品四区
|
一本综合精品
|
欧美成人精品在线
|
蜜臀av国产精品久久久久
|
国产精品地址
|
亚洲日韩成人
|
在线观看视频一区二区
|
亚洲影院免费观看
|
在线观看欧美黄色
|
亚洲高清免费视频
|
亚洲欧美日韩精品久久久久
|
亚洲精品一区二区三区99
|
欧美与欧洲交xxxx免费观看
|
亚洲一区二区动漫
|
欧美二区在线观看
|
欧美成人亚洲成人
|
黄色日韩精品
|
久久er99精品
|
久久精品亚洲一区
|
国产区亚洲区欧美区
|
亚洲欧美日韩在线
|
欧美一区二区三区在线免费观看
|
欧美日韩亚洲一区二区三区在线
|
亚洲电影天堂av
|
亚洲人成网站精品片在线观看
|
欧美国产1区2区
|
免费欧美日韩
|
伊人久久婷婷色综合98网
|
欧美一区二区免费
|
久久久久www
|
一区精品久久
|
麻豆国产精品va在线观看不卡
|
麻豆精品视频在线
|
亚洲国产综合91精品麻豆
|
免费的成人av
|
亚洲精品久久久久久久久久久久
|
妖精视频成人观看www
|
欧美日韩国内
|
亚洲视频在线一区观看
|
欧美在线观看视频一区二区三区
|
国产精品一区视频网站
|
欧美一区激情
|
欧美黄色成人网
|
中文高清一区
|
国产区二精品视
|
久久综合九色综合久99
|
91久久精品国产91久久性色
|
亚洲一区二区三区四区五区午夜
|
国产欧美日本
|
可以免费看不卡的av网站
|
亚洲人成网站777色婷婷
|
亚洲专区免费
|
韩国一区电影
|
欧美日韩国产另类不卡
|
亚洲欧美三级伦理
|
欧美激情日韩
|
亚洲欧美视频一区
|
在线日韩av片
|
国产精品久久久久久av福利软件
|
国产精品扒开腿做爽爽爽软件
|
亚洲视频免费在线观看
|
国产欧美va欧美不卡在线
|
久久久久网站
|
99在线精品观看
|
美乳少妇欧美精品
|
一本色道久久综合亚洲精品婷婷
|
国产日韩免费
|
欧美精品一区二区三区久久久竹菊
|
久久成人精品无人区
|
精品福利av
|
欧美日韩在线观看视频
|
欧美在线影院在线视频
|
亚洲老板91色精品久久
|
久久久精品一区
|
亚洲麻豆av
|
韩国v欧美v日本v亚洲v
|
欧美午夜电影在线
|
久久亚洲捆绑美女
|
亚洲欧美不卡
|
亚洲免费观看
|
欧美成人一区二区三区片免费
|
小嫩嫩精品导航
|
一区二区三区精品久久久
|
国产在线观看91精品一区
|
欧美日韩一区二区精品
|
美女91精品
|
久久人人爽人人爽爽久久
|
亚洲一区一卡
|
99精品视频免费观看视频
|
亚洲国产精品成人综合色在线婷婷
|
香蕉视频成人在线观看
|
亚洲欧美综合v
|
亚洲主播在线
|