锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品亚洲,美女露胸一区二区三区,亚洲欧美在线另类http://www.shnenglu.com/sunicdavy/archive/2021/12/27/217896.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Mon, 27 Dec 2021 11:05:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2021/12/27/217896.htmlhttp://www.shnenglu.com/sunicdavy/comments/217896.htmlhttp://www.shnenglu.com/sunicdavy/archive/2021/12/27/217896.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/217896.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/217896.html闃呰鍏ㄦ枃

鎴橀瓊灝忕瓚 2021-12-27 19:05 鍙戣〃璇勮
]]>
娓告垙涓嶹eb鐨勬湇鍔″櫒瀵規瘮http://www.shnenglu.com/sunicdavy/archive/2018/08/29/215887.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 29 Aug 2018 03:16:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2018/08/29/215887.htmlhttp://www.shnenglu.com/sunicdavy/comments/215887.htmlhttp://www.shnenglu.com/sunicdavy/archive/2018/08/29/215887.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/215887.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/215887.html涓轟簡緙栧啓鍩轟簬cellnet鐨勬柊涓浠f父鎴忔湇鍔″櫒妗嗘灦錛屾渶榪戞繁鍏ョ爺絀跺井鏈嶅姟錛孲erviceMesh絳夋蹇點傜爺絀惰繃紼嬩腑瀵筗eb鍜屾父鎴忎袱縐嶆湇鍔″櫒鏋舵瀯璁捐鏈変竴浜涘績寰楋紝緙栧啓騫惰褰曚笅鏉ャ?涓嬫枃涓紝Game琛ㄧず娓告垙鏈嶅姟鍣紝Web琛ㄧずWeb鏈嶅姟鍣? ``
鐘舵佺紦瀛?/span>
鎵璋撶姸鎬佺紦瀛橈紝灝辨槸鍦ㄥ唴瀛樿岄潪涓撲笟鏁版嵁緙撳瓨鏈嶅姟鍣紙濡俽edis錛変腑淇濆瓨鍜屽鐞嗛昏緫鏁版嵁錛屾墜鍔ㄧ紪鍐欐榪囩▼杈冧負綣佺悙浣嗘槸鏁堢巼杈冮珮錛屼絾闅忕潃鐘舵侀昏緫澶嶆潅鎬у拰騫跺彂銆佹墿瀹歸棶棰樻彁鍑猴紝鐘舵佸悓姝ヤ細鍙樺緱瓚婃潵瓚婂鏉傘?/span>
Game:
寮轟氦浜掓х殑鏈嶅姟鍣ㄧ被鍨嬮渶瑕佸湪鏈嶅姟鍣ㄥ仛緙撳瓨錛岄昏緫緙栧啓涔熻緝涓哄鏄擄紝鏃犻渶澶勭悊浜嬪姟騫跺彂闂銆備緥濡傦細緇勯槦錛屽尮閰嶏紝鎴樻枟閫昏緫銆傛湇鍔″櫒涓嶈兘闅忔剰閲嶅惎銆?/span>
寮變氦浜掓х殑鏈嶅姟鍣ㄧ被鍨嬪彲閰嶅悎redis鍋氭垚鏃犵姸鎬佹湇鍔″櫒錛屼緥濡傦細鍏繪垚錛屾妧鑳藉崌綰э紝棰嗗彇鐗╁搧絳夈傛湇鍔″櫒闅忔椂鏀寔閲嶅惎銆?/span>
娓告垙鏈嶅姟鍣ㄤ負浜嗘彁楂樻ц兘錛屾棭鏈熸墍鏈夋湇鍔″櫒閮芥槸浣跨敤鐘舵佺紦瀛樺啓娉曠紪鍐欙紝鐗瑰埆鏄疢MORPG榪欑被寮轟氦浜掔殑娓告垙鏈嶅姟鍣ㄥ挨涓轟弗閲嶃?/span>
Web:
鍧囦負鏃犵姸鎬佹湇鍔″櫒錛屽急浜や簰銆備嬌鐢ㄤ簨鍔℃柟寮忓鐞嗗茍鍙戦昏緫錛屼緥濡傦細浜ゆ槗錛屼笅鍗曠瓑銆?/span>
鎺ㄩ侊紝鍗曠嫭鍙戦?/span>
榪欓噷鎻愬埌鐨勬墍璋撴帹閫侊紝鍗曠嫭鍙戦佹槸涓嶳PC鍖哄埆鐨勯氳鏂規硶銆俁PC瑕佹眰璇鋒眰蹇呴』鏈夊洖搴斻傝屾帹閫佸崟鐙彂閫佸垯鏇村儚鏄氱煡鍜屽箍鎾紝鏃犻渶鐩殑鏂硅繑鍥炰換浣曟秷鎭?/span>
Game:
鎵懼埌鏈嶅姟鍣ㄧ殑Session錛岀洿鎺end
閫氳繃涓漿鏈嶅姟鍣紝鎴栫О涓轟腑蹇冩湇鍔″櫒榪涜娉ㄥ唽/騫挎挱
瀹㈡埛绔殑model鏁版嵁闇瑕佹洿鏂版椂錛屾湇鍔″櫒浼氫富鍔ㄦ帹閫佹秷鎭?/span>
娓告垙鏈嶅姟鍣ㄦ病鏈変弗鏍肩殑RPC璁捐闇姹傦紝鎺ㄩ佸拰鍗曠嫭鍙戦佽緝Web鏈嶅姟鍣ㄦ洿澶氥傝屼笖娓告垙鏈嶅姟鍣ㄥ浣跨敤闀胯繛鎺ワ紝鎵浠ヤ富鍔ㄦ帹閫佷篃姣擶eb鏈嶅姟鍣ㄦ潵鐨勬柟渚夸竴浜涖?/span>
Web:
灝嗘帹閫佸仛鎴愪笓鏈夌殑鏈嶅姟錛屽茍鍋氭帓闃熷拰騫跺彂澶勭悊銆?/span>
鍙敤鎬?/span>
鍚榪囨父鎴忓仠鏈嶆洿鏂幫紝鏀粯瀹濇湇鍔″櫒鍦ㄥ埛浜岀淮鐮佹椂鍋滄湇浜嗗彲涓瀹氳楠傛儴鍚с俉eb瀵規湇鍔″櫒楂樺彲鐢ㄦц姹傚緢楂橈紝娓告垙铏界劧涔熸敞閲嶆湇鍔″櫒紼沖畾鎬у拰鍙敤鎬э紝浣嗘槸鐢變簬鐗堟湰榪唬鏇存柊棰戠箒錛屽仠鏈嶆洿鏂板弽鑰岃兘鑾峰緱鐜╁鎺ュ彈銆?/span>
Game:
娓告垙瀵瑰彲鐢ㄦц姹備笉楂樸?/span>
娓告垙澶х増鏈洿鏂版椂闇瑕佸仠鏈嶆洿鏂般傛敮鎸佺儹鏇存柊鎶鏈殑鏈嶅姟鍣紙渚嬪Erlang錛孲kynet錛変粎浣跨敤鐑洿鏂頒慨澶峛ug錛屽緢灝戠洿鎺ユ洿鏂版柊鐗堟湰銆?/span>
涓嶆槸鎵鏈夌殑娓告垙鏈嶅姟鍣ㄦ敮鎸佸姩鎬佹坊鍔犳湇鍔″櫒銆?/span>
Web:
鏋侀珮鐨勫彲鐢ㄦэ紝鏈嶅姟涓嶅厑璁稿仠鏈嶆洿鏂幫紝浣跨敤钃濈豢鍙婄伆搴︽柟寮忔洿鏂版湇鍔″櫒銆?/span>
闅忔椂鍙互妯悜鎵╁睍鏈嶅姟鍣紝鎻愰珮鏈嶅姟鍣ㄥ閲忓拰鎵胯澆銆?/span>
榪炴帴鍙婁紶杈?/span>
鍧囦嬌鐢═CP浼犺緭鍗忚錛屾父鎴忔湇鍔″櫒娉ㄩ噸鎬ц兘錛岃嚜鏈夊崗璁強浜岃繘鍒跺崗璁嬌鐢ㄨ緝澶氥?/span>
Web娉ㄩ噸鍏煎鍜屾帴鍙e弸濂斤紝浣跨敤JSON鏍煎紡杈冨銆?/span>
Game:
浣跨敤闀胯繛鎺ワ紝闇瑕佷粠閫昏緫灞傜淮鎶よ繛鎺ョ姸鎬佸強澶勭悊鏈嶅姟鍣ㄤ笉鍦ㄧ嚎鎯呭喌
浣跨敤鑷湁灝佸寘鏍煎紡錛屽ぇ閮ㄥ垎浣跨敤protobuf鎴栦簩榪涘埗嫻佹牸寮忋?/span>
Web:
寰湇鍔″ぇ閮ㄥ垎浣跨敤鐭繛鎺ワ紝grpc鏀寔http2闀胯繛鎺?/span>
浣跨敤json緙栫爜鏂逛究璋冭瘯鍜岀増鏈吋瀹廣?/span>
嫻侀噺闄愬埗
浜烘暟澶氫簡錛屼換浣曟湇鍔″櫒閮芥墰涓嶄綇錛屾祦閲忛檺鍒跺拰鐧誨叆闄愬埗鑳芥湁鏁堜繚鎶ゆ湇鍔″櫒紼沖畾銆?/span>
Game:
鍗曟湇鏈変漢鏁伴檺鍒訛紝鍙互閫氳繃GM鍚庡彴璁劇疆鎸″錛岃秴榪囨棤娉曡繘鍏?/span>
Web:
闄愭祦鍣ㄤ腑闂翠歡錛屽彲浠ョ簿紜埌鏈嶅姟鎺у埗嫻侀噺
鏂祦錛岄槻姝㈤洩宕?/span>
Game:
娓告垙娌℃湁錛屼篃涓嶉渶瑕佽繖縐嶆蹇碉紝娓告垙璇鋒眰涓嶄細紿佺劧鍗囬珮錛屽嵆渚挎湁錛屼篃閫氳繃GM鍚庡彴浜轟負鎺у埗
Web:
鏂祦鍣ㄤ腑闂翠歡
鏈嶅姟鍙戠幇
濡備綍鎵懼埌鏈嶅姟鍣ㄥ湴鍧銆?/span>
鏈嶅姟鏈夊彉鍖栨椂錛岄氳繃Watch緋葷粺閫氱煡璁㈤槄鑰呮洿鏂版湰鍦扮紦瀛?/span>
鏈嶅姟鍣ㄦ病鏈夊彉鍖栨椂錛屼嬌鐢ㄦ湰鍦扮紦瀛樻壘鍒版湇鍔″湴鍧
Game:
娓告垙鏈嶅姟鍣ㄤ簰鐩鎬緷璧栧鐢ㄥ彧鍦ㄥ緢灝忕殑鑼冨洿鍐咃紝鍥犳鏃犻渶鍦ㄤ笉鍚岃璦涓嶅悓榪涚▼鏈嶅姟闂磋幏寰楀湴鍧錛屽ぇ閮ㄥ垎鍦ㄩ厤緗枃浠朵腑濉啓鍚勬湇鍔$殑IP鍙婂湴鍧鍗沖彲浜掔浉璁塊棶銆?/span>
鏃╂湡娓告垙鑷繁緙栧啓鏈嶅姟鍣ㄧ姸鎬佸強鍦板潃鍙戠幇鏈嶅姟銆?/span>
鏈夌敤redis鍋氭湇鍔″彂鐜?/span>
Web:
浣跨敤鏈嶅姟鍙戠幇緋葷粺錛屽垎甯冨紡閮ㄧ講銆傛棤闇渚濊禆閰嶇疆鏂囦歡
緗戝叧闇姹?/span>
Game:
緗戝叧澶勭悊瀹㈡埛绔笂涓嬬嚎閫氱煡錛屽績璺籌紝緇存寔榪炴帴錛岃漿鍙戯紝騫挎挱涓婁笅琛屽皝鍖?/span>
Web:
鏍規嵁璇鋒眰鍦板潃璺敱錛屾棤涓婁笅綰挎蹇碉紝鏃犲績璺熾傚箍鎾氳繃娑堟伅鎺ㄩ佺郴緇熷畬鎴?/span>
鐢變簬絎旇呬粠浜嬫父鎴忚涓氾紝瀵筗eb鏈嶅姟鍣ㄦ蹇靛湪閫愭笎鐔熸倝涓紝鑻ユ湁閿欒鍜屼笉瓚寵鍚勪綅澶т漿鎸囧嚭銆?/span>
鏈漢鏂頒功銆奊o璇█浠庡叆闂ㄥ埌榪涢樁瀹炴垬銆嬶紝鐢熷姩鐨勮璦錛屼緥瀛愬甫鏈夊悇縐嶅僵铔嬶紝杞繪澗浜嗚ВGo璇█鐗規э紝鏇存湁cellnet妗嗘灦鍓栨瀽瑙e瘑
https://search.jd.com/Search?keyword=go%E8%AF%AD%E8%A8%80%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E8%BF%9B%E9%98%B6%E5%AE%9E%E6%88%98&enc=utf-8&suggest=1.def.0.V02&wq=Go%E8%AF%AD%E8%A8%80%E4%BB%8E&pvid=145d55a92cab4b07b71326f8beb1700b


鎴橀瓊灝忕瓚 2018-08-29 11:16 鍙戣〃璇勮
]]>
Golang 鐑洿鏂扮爺絀剁瑪璁?/title><link>http://www.shnenglu.com/sunicdavy/archive/2017/07/06/215057.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Thu, 06 Jul 2017 04:47:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2017/07/06/215057.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/215057.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2017/07/06/215057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/215057.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/215057.html</trackback:ping><description><![CDATA[<p data-source-line="1" style="box-sizing: border-box; margin-bottom: 16px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 21px; widows: 1; background-color: #ffffff; margin-top: 0px !important;">鏈枃涓昏鐮旂┒娓告垙鏈嶅姟鍣ㄥ甫鐘舵佺殑鐑洿鏂伴渶姹?http鐨勬棤鐘舵佺儹鏇存柊闇姹傚凡緇忔湁鎴愮啛鏂規, 鏁呬笉鍦ㄦ湰鏂囨弿榪拌寖鍥?/p><h1><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#鍩烘湰姒傚康" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>鍩烘湰姒傚康</h1><ul data-source-line="6" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; padding-left: 2em; color: #333333; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 21px; widows: 1; background-color: #ffffff;"><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">Golang鐨勭儹鏇存柊閲囩敤浠涔堟満鍒?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">浣跨敤go1.8鎻愪緵鐨刾lugin鍖呮満鍒跺疄鐜?/p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">plugin鍖呮湰韜璁$殑鐩殑鏄儹鏇存柊涔?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">plugin鍖呭叾瀹炲彧鏄敮鎸佸皢浠g爜鍒嗗埆緙栬瘧涓哄涓姩鎬佸簱,鍔ㄦ佸姞杞藉悗榪愯 騫朵笉鑳藉畬鍏ㄦ敮鎸佺被浼糃/C++鐨勫姩鎬佸簱鏂瑰紡澶勭悊浠g爜</p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">甯︾姸鎬佺殑榪涚▼鐑洿鏂扮殑鍩烘湰姒傚康鍙婅寖鍥存槸浠涔?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鏁版嵁閮ㄥ垎(model)涓嶆洿鏂? 鍙洿鏂伴昏緫閮ㄥ垎(鍑芥暟)</p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">琛ㄦ牸鍜岄厤緗洿鏂扮畻鐑洿鏂頒箞?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">綆? 浣嗕笉鏄湰鏂囨弿榪拌寖鍥?/p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鐑洿鏂拌兘鍦╳indows涓婁嬌鐢ㄤ箞?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">涓嶆敮鎸?/p></li></ul><h1><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#浠g爜鍙婄粨鏋? style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>浠g爜鍙婄粨鏋?/h1><ul data-source-line="29" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; padding-left: 2em; color: #333333; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 21px; widows: 1; background-color: #ffffff;"><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鎴戣兘灝嗗師鏉ヤ竴涓猠xe鐨勪唬鐮佺紪璇戜負so鎻愪緵緇檖lugin浣跨敤涔?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍙互, 浣嗘槸蹇呴』浠嶇劧淇濈暀main鍖呬綔涓烘彃浠跺叆鍙? 騫跺湪main鍖呭唴娣誨姞鎻愪緵緇檖lugin璋冪敤鍏ュ彛.</p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">濡傛灉鍔ㄦ佸簱涓病鏈塵ain鍖? 緙栬瘧鍑虹殑so鑳界敤涔?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">涓嶈兘, 鍖呭繀欏誨寘鍚玬ain, 鍚﹀垯杈撳嚭鐨勬槸.a鐨勬枃浠? plugin鍖呭姞杞戒細鎶ラ敊</p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍔ㄦ佸簱涓? 闈瀖ain鍖呯殑鐨勪唬鐮佷慨鏀硅兘鍋氱儹鏇存柊涔?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;"><span style="box-sizing: border-box; font-weight: 600;">涓嶈兘</span>!(宕╂簝浜嗗惂, 鎴戞彁浜嗕竴涓猧ssue: <a style="box-sizing: border-box; color: #4078c0; text-decoration-line: none; background-color: transparent;">https://github.com/golang/go/issues/20554</a>)</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">濡傛灉紜疄鍋氫簡淇敼, 搴曞眰浼氭姤閿? plugin was built with a different version of package</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">瑙e喅鏂規硶: 淇敼plugin鍖呭簳灞傚疄鐜板茍閲嶆柊緙栬瘧 鎵撳紑runtime/plugin.go, 娉ㄩ噴浠ヤ笅浠g爜 for _, pkghash := range md.pkghashes { if pkghash.linktimehash != *pkghash.runtimehash { return "", nil, pkghash.modulename } } 鎵ц/usr/local/go/run.bash 閲嶇紪璇?嫻嬭瘯</p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">浠g爜涓摢浜涘彲浠ヨ鏇存柊? 鏂規硶鍙互琚洿鏂頒箞? 闂寘鍛?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍙兘鏇存柊鎷ユ湁闈欐佸湴鍧鐨勭粨鏋?渚嬪: 鍖呯駭鍒嚱鏁?綾諱技浜庨潤鎬佸嚱鏁?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">渚嬪: svc_0.so閲屾湁涓涓狥oo鍑芥暟, svc_1.so淇敼浜咶oo鍑芥暟瀹炵幇, 鐑洿鏂板彲瀹炵幇</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;"><span style="box-sizing: border-box; font-weight: 600;">闂寘=鍑芥暟+鎹曡幏鍙橀噺</span>, 瀹為檯涓婃槸涓涓姩鎬佺粨鏋? 娌℃湁闈欐佸湴鍧, 鏃犳硶琚洿鏂?/p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍚勭鍖呯駭鍒彉閲? 緇撴瀯浣撳彉閲? 緇撴瀯浣撴柟娉? 灞閮ㄥ彉閲忓潎涓嶈兘琚儹鏇存柊, 浣嗘槸鍙橀噺鍊間笉浼氳褰卞搷</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鏂板緇撴瀯鍙互琚繍琛?/p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">浣跨敤緇撴瀯浣撴柟娉曡皟鐢ㄤ簡鍖呯駭鍒嚱鏁? 鍖呯駭鍒嚱鏁拌兘琚洿鏂頒箞?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍙互, 铏界劧鏂規硶涓嶈兘琚洿鏂? 浣嗘柟娉曡璋冪敤鐨勫寘綰у埆鍑芥暟鐨勫湴鍧鏄浐瀹氱殑, 鎵浠ュ彲浠ヨ鐑洿鏂?/p></li><li style="box-sizing: border-box; margin-top: 0.25em;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">init鍖呭垵濮嬪寲鍑芥暟鑳界敤涔? 鑳借鐑洿鏂頒箞?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">瀹樻柟榪欐牱鎻忚堪:</p><pre data-source-line="71" style="box-sizing: border-box; font-stretch: normal; font-size: 11.9px; line-height: 1.45; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; word-wrap: normal; margin-top: 0px; margin-bottom: 16px; padding: 16px; overflow: auto; border-radius: 3px; background-color: #f7f7f7;"><code style="box-sizing: border-box; display: inline; overflow: visible; padding: 0px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; margin: 0px; font-size: 11.9px; border-radius: 3px; word-break: normal; border: 0px; line-height: inherit; word-wrap: normal; background: 0px 0px transparent;"><span style="box-sizing: border-box; font-weight: 700;">When</span> a plugin <span style="box-sizing: border-box; font-weight: 700;">is</span> first opened, the init functions <span style="box-sizing: border-box; font-weight: 700;">of</span> <span style="box-sizing: border-box; font-weight: 700;">all</span> packages <span style="box-sizing: border-box; font-weight: 700;">not</span> already part <span style="box-sizing: border-box; font-weight: 700;">of</span> the program are called. The main <span style="box-sizing: border-box; font-weight: 700;">function</span> <span style="box-sizing: border-box; font-weight: 700;">is</span> <span style="box-sizing: border-box; font-weight: 700;">not</span> run. A plugin <span style="box-sizing: border-box; font-weight: 700;">is</span> only initialized once, <span style="box-sizing: border-box; font-weight: 700;">and</span> cannot be closed</code></pre><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鎻掍歡絎竴嬈¤鎵撳紑鏃? 鍏跺叧鑱旂殑, 娌℃湁鎴愪負紼嬪簭鐨勪竴閮ㄥ垎鐨勬墍鏈夌殑鍖呯殑init鍑芥暟灝嗚璋冪敤. 鎻掍歡鐨刴ain鍑芥暟涓嶄細琚皟鐢? 鎻掍歡鍙細琚垵濮嬪寲涓嬈? 涓嶈兘琚叧闂?/p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍥犳, 闇瑕佹墜鍔ㄥ皢init鍑芥暟鏀規垚鑷繁鐨勫嚱鏁? 緇熶竴鍦╯o鐨刴ain鍖呴噷璋冪敤</p></li></ul><h1><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#緙栬瘧" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>緙栬瘧</h1><ul data-source-line="80" style="box-sizing: border-box; margin-top: 0px; padding-left: 2em; color: #333333; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 21px; widows: 1; background-color: #ffffff; margin-bottom: 0px !important;"><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">濡備綍緙栬瘧鑾峰緱plugin鍖呮敮鎸佺殑鍔ㄦ佸簱</p><pre data-source-line="82" style="box-sizing: border-box; font-stretch: normal; font-size: 11.9px; line-height: 1.45; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; word-wrap: normal; margin-top: 0px; margin-bottom: 16px; padding: 16px; overflow: auto; border-radius: 3px; background-color: #f7f7f7;"><code style="box-sizing: border-box; display: inline; overflow: visible; padding: 0px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; margin: 0px; font-size: 11.9px; border-radius: 3px; word-break: normal; border: 0px; line-height: inherit; word-wrap: normal; background: 0px 0px transparent;">SVCNAME=<span style="box-sizing: border-box; color: teal;">$1</span> SVCVER=<span style="box-sizing: border-box; color: teal;">$2</span> TIMESTAMP=`date <span style="box-sizing: border-box; color: #dd1144;">'+%Y%m%d_%H%M%S'</span>` go build -v -buildmode=plugin --ldflags=<span style="box-sizing: border-box; color: #dd1144;">"-pluginpath=${SVCNAME}_${TIMESTAMP}"</span> -o ${SVCNAME}<span style="box-sizing: border-box; color: teal;">_</span>${SVCVER}.so ${SVCNAME}</code></pre><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">-buildmode=plugin鏄噸瑕佸弬鏁?/p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">--ldflags閲岀殑-pluginpath鐨勪綔鐢ㄦ槸: 姣忔緙栬瘧鐨勫唴閮ㄨ瘑鍒礬寰勯兘鏄笉鍚岀殑, 閬垮厤閲嶅鍔犺澆鐨勮鍛?/p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍙傝? <a style="box-sizing: border-box; color: #4078c0; text-decoration-line: none; background-color: transparent;">https://github.com/golang/go/issues/19004</a></p></li></ul><img src ="http://www.shnenglu.com/sunicdavy/aggbug/215057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2017-07-06 12:47 <a href="http://www.shnenglu.com/sunicdavy/archive/2017/07/06/215057.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MMO鐩鎬綅鎶鏈爺絀?/title><link>http://www.shnenglu.com/sunicdavy/archive/2017/04/08/214817.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Sat, 08 Apr 2017 06:41:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2017/04/08/214817.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/214817.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2017/04/08/214817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/214817.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/214817.html</trackback:ping><description><![CDATA[<h1>鐩鎬綅鎶鏈?/h1><p data-source-line="3" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鐩鎬綅鎶鏈ぇ瑙勬ā鍑虹幇鍦ㄩ瓟鍏戒笘鐣學LK鐗堟湰, 鐜板湪搴旂敤宸茬粡騫挎硾搴旂敤鍦ㄥ悇縐峂MORPG娓告垙涓? 涓嬮潰瀵圭浉浣嶆妧鏈殑鍋氭硶榪涜綆鍗曞綊綰蟲眹鎬?/p><h2><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#琛ㄧ幇鍒嗙被" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>琛ㄧ幇鍒嗙被</h2><h3><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#鍓湰鐩鎬綅" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>鍓湰鐩鎬綅</h3><p data-source-line="10" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鏃╂湡鍓湰鐨勫嚭鐜? 閬垮厤鎶㈡棶棰? 鎵浠? 鍓湰鍏跺疄鏈韓灝辨槸涓縐嶇浉浣嶆妧鏈? 鍙笉榪囧疄鐜版椂, 鎴戜滑涓鑸細灝嗗皬闃熷拰鎬墿鐩存帴棰勫垎閰嶅湪鐙珛鐨勪竴涓壇鏈疄渚嬩腑(鎵浠ュ壇鏈師鏂囦篃鏄疄渚嬬殑鎰忔?</p><h3><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#鍒嗙嚎鐩鎬綅" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>鍒嗙嚎鐩鎬綅</h3><p data-source-line="15" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鐩鎬綅鎶鏈繕娌℃湁姝e紡鍛藉悕鏃? 鍚屼竴涓満鏅? 鐜╁榪涘埌涓嶅悓鐨勫垎綰跨湅鍒扮殑鐜╁涓嶄竴鏍? 涔熸槸灞炰簬鐩鎬綅鐨勪竴縐? 褰撶劧, 濡傛灉鏄粍闃熺帺瀹? 鏈嶅姟鍣ㄩ粯璁や細鍒嗛厤鎵鏈夐槦浼嶇帺瀹跺湪鍚屼竴涓嚎(浣嶉潰)</p><h3><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#鐪熺浉浣? style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>鐪熺浉浣?/h3><p data-source-line="20" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鍓湰鐩鎬綅鍜屽垎綰跨浉浣嶅叾瀹為兘鏄潤鎬佺浉浣? 涓鏃﹁繘鍏? 涓斾笉浼氭湁鍒囨崲鎴栬呮販鍚堟煡鐪嬬殑榪囩▼. 鐪熺浉浣嶅彲浠ュ湪涓涓満鏅腑,鍔ㄦ佸垏鎹㈢浉浣? 鐩鎬綅鍐呭拰鐩鎬綅澶栨墍浠ヤ笉鍚?/p><p data-source-line="22" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鎴戜滑甯歌鐨勭湡鐩鎬綅琛ㄧ幇涓? <span style="box-sizing: border-box; font-weight: bolder;">鐩鎬綅涓殑瑙掕壊+鐜╁+闃熶紞鎴愬憳</span></p><p data-source-line="24" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鍦ㄦ姢閫佷換鍔℃椂, 榪樹細鍦ㄤ笂闈㈡墍瑙佽鑹蹭腑鍙犲姞涓栫晫涓殑鎵鏈夎鑹? 涔熷氨鏄, 浣犲拰闃熶紞鎴愬憳鍙互鐪嬪埌鐨勮鑹? 鍏朵粬浜虹湅涓嶅埌, 鍏朵粬浜轟篃鐪嬩笉鍒頒綘鍜屼綘鐨勯槦浼嶆垚鍛?/p><hr style="box-sizing: content-box; overflow: hidden; height: 4px; padding: 0px; margin: 16px 0px; border-width: 0px; border-style: initial; border-bottom-color: #eeeeee; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background: #e7e7e7;" /><p data-source-line="28" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">涓轟簡娓呮櫚鐨勭畝鍗曠殑鎻忚堪, 鎴戜負鐩鎬綅鍒涘緩濡備笅姒傚康涓庡悕璇?/p><h2><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#鐩鎬綅瀹綋" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>鐩鎬綅瀹綋</h2><p data-source-line="33" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">琛ㄧ幇涓洪櫎鐜╁澶栫殑瑙掕壊(鎬墿,浜や簰鐗╀綋涓庣浉浣嶅彲瑙佸満鏅?</p><h3><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#縐佹湁瀹綋" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>縐佹湁瀹綋</h3><p data-source-line="37" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">榪欐槸鏈甯歌鐨勪竴縐嶇浉浣嶅唴瑙掕壊</p><ul data-source-line="39" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; padding-left: 2em; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;"><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鎸佹湁鍙橀噺</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍙朠hasingID鏃?涓篜hasingTargetID</p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鐢熸垚瑙勫垯</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">褰撶帺瀹跺紑鍚浉浣嶅悗, 鍦ㄧ帺瀹剁浉浣嶅唴<span style="box-sizing: border-box; font-weight: bolder;">鐢熸垚鐨勮鑹?/span>涓虹鏈夊浣?</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">姝ゆ椂, 灝?PhasingTargetID璁劇疆涓虹浉浣嶇敓鎴愯呯殑瀹炰緥ID</p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍒犻櫎瑙勫垯</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">濡傛灉鐜╁閫鍑虹浉浣? 縐佹湁瀹綋浼氬瓨鍦ㄤ竴孌墊椂闂存垨鎸夌収闇姹傚垹闄?/p></li></ul><h3><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#鍏叡瀹綋" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>鍏叡瀹綋</h3><p data-source-line="55" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">涓鑸寚鎻愬墠鏀劇疆鍦ㄥ満鏅腑, 涓栫晫鍐呬笉鍙, 浣嗘槸鑳借鍚岀浉浣嶇帺瀹跺彲瑙?涓斿悓鐩鎬綅鐜╁閮藉彲浠ヤ簰鐩稿彲瑙?姣斿: 鍙鎺ヤ簡鍚屼竴涓換鍔$殑鐜╁, 閮藉彲浠ョ湅鍒扮殑NPC</p><ul data-source-line="58" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; padding-left: 2em; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;"><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鎸佹湁鍙橀噺</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍙朠hasingID鏃?涓篜ublicPhasingID</p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鐢熸垚瑙勫垯</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">閫氳繃鍦烘櫙緙栬緫鍣? 鏀劇疆瑙掕壊鏃? 璁劇疆鍏跺彲琚瀵熷埌鐨勪換鍔D</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">瑙掕壊琚姞杞藉悗, 灝嗕換鍔D璁劇疆鍒癝taticPhasingID</p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍒犻櫎瑙勫垯</p><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鍦烘櫙鍒犻櫎, 瑙掕壊鍒犻櫎</p></li></ul><h2><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#鐩鎬綅涓諱綋" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>鐩鎬綅涓諱綋</h2><p data-source-line="75" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鍖呭惈鐜╁涓庡悓闃熶紞鐜╁</p><ul data-source-line="78" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; padding-left: 2em; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;"><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">寮鍚浉浣嶅悗, 鍙縐佹湁瀹綋+鍏湁瀹綋</p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">闃熼暱瑙嗕負鐩鎬綅涓諱綋, 鍗曚漢鏃? 鑷繁涓洪槦闀?/p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">闃熶紞鍏朵粬鎴愬憳鍏變韓闃熼暱鐨勭鏈夌浉浣嶅浣?/p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">闃熶紞鍏朵粬鎴愬憳鏍規嵁鑷繁鐨凱ublicPhasingID鍖歸厤鐩爣瀵硅薄鐨凱ublicPhasingID鏃跺彲浜掔浉鍙</p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box; margin-top: 16px; margin-bottom: 16px;">鎸佹湁鍙橀噺</p></li></ul><p data-source-line="88" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鐩鎬綅寮鍚椂, 鍙朠hasingID鏃? 涓鴻鑹插疄渚婭D</p><p data-source-line="90" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鐩鎬綅鍏抽棴鏃? 鍙朠hasingID鏃? 涓?</p><p data-source-line="92" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">PublicPhasingID</p><h2><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#鍙瑙勫垯" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>鍙瑙勫垯</h2><p data-source-line="98" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">褰撲袱涓鑹茬殑PhasingID鐩哥瓑鏃? 涓諱綋涓庣鏈夊浣撲簰鐩稿彲瑙?/p><p data-source-line="100" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">褰撲袱涓鑹茬殑PublicPhasingID鐩哥瓑鏃? 涓諱綋涓庡叕鏈夊浣撲簰鐩稿彲瑙?/p><p data-source-line="102" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff;">鍙互閫氳繃寮鍏寵緗? 鏄惁鍦ㄥ彲瑙佺殑鐩鎬綅瀹綋鍩虹涓? 鍙犲姞涓栫晫瑙掕壊(鎶ら佷換鍔?</p><h2><a href="file:///C:/Users/Davy/AppData/Local/Youdao/YNote/markdown/index.html#綰︽潫" style="box-sizing: border-box; color: #4078c0; text-decoration-line: none;"></a>綰︽潫</h2><ul data-source-line="106" style="box-sizing: border-box; margin-top: 0px; padding-left: 2em; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 22.4px; widows: 1; background-color: #ffffff; margin-bottom: 0px !important;"><li style="box-sizing: border-box;">鐜╁鍚屾椂鍙兘鐪嬭1涓浉浣?/li></ul><img src ="http://www.shnenglu.com/sunicdavy/aggbug/214817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2017-04-08 14:41 <a href="http://www.shnenglu.com/sunicdavy/archive/2017/04/08/214817.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Golang鐨勭畝鍗曞弽灝勬ц兘嫻嬭瘯http://www.shnenglu.com/sunicdavy/archive/2016/08/12/214152.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Fri, 12 Aug 2016 07:26:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2016/08/12/214152.htmlhttp://www.shnenglu.com/sunicdavy/comments/214152.htmlhttp://www.shnenglu.com/sunicdavy/archive/2016/08/12/214152.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/214152.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/214152.html嫻嬭瘯鐢ㄤ緥

鎴戜滑瀵笹olang鐨勭粨鏋勪綋鍙橀噺璧嬪? 浠ュ強鍗曞弬鏁板嚱鏁拌皟鐢ㄨ繘琛屽弽灝勫拰native鎿嶄綔鐨勬祴璇?pre>

 

package main

 

import (

"reflect"

"testing"

)

 

type data struct {

Hp int

}

 

const AssignTimes = 100000000

 

func TestNativeAssign(t *testing.T) {

 

v := data{Hp: 2}

 

for i := 0; i < AssignTimes; i++ {

v.Hp = 3

}

 

}

 

func TestReflectAssign(t *testing.T) {

 

v := data{Hp: 2}

 

vv := reflect.ValueOf(&v).Elem()

 

f := vv.FieldByName("Hp")

 

for i := 0; i < AssignTimes; i++ {

 

f.SetInt(3)

}

 

}

 

func TestReflectFindFieldAndAssign(t *testing.T) {

 

v := data{Hp: 2}

 

vv := reflect.ValueOf(&v).Elem()

 

for i := 0; i < AssignTimes; i++ {

 

vv.FieldByName("Hp").SetInt(3)

}

 

}

 

func foo(v int) {

 

}

 

const CallTimes = 100000000

 

func TestNativeCall(t *testing.T) {

for i := 0; i < CallTimes; i++ {

 

foo(i)

}

}

 

func TestReflectCall(t *testing.T) {

 

v := reflect.ValueOf(foo)

 

for i := 0; i < CallTimes; i++ {

 

v.Call([]reflect.Value{reflect.ValueOf(2)})

}

}

鎬ц兘嫻嬭瘯鏁版嵁

=== RUN TestNativeAssign
鈥?PASS: TestNativeAssign (0.03s)
=== RUN TestReflectAssign
鈥?PASS: TestReflectAssign (0.41s)
=== RUN TestReflectFindFieldAndAssign
鈥?PASS: TestReflectFindFieldAndAssign (9.86s)
=== RUN TestNativeCall
鈥?PASS: TestNativeCall (0.03s)
=== RUN TestReflectCall
鈥?PASS: TestReflectCall (21.46s)

嫻嬭瘯璇勬祴

  • 鍦ㄧ粨鏋勪綋鍙橀噺璧嬪兼祴璇曠敤渚嬩腑, 鎴戜滑鍙戠幇TestReflectFindFieldAndAssign璧嬪兼牸澶栫殑鑰楁椂. 鍒嗘瀽鎬ц兘鐐瑰湪FieldByName榪欎釜鍑芥暟涓? 鎴戜滑鏌ヤ簡涓嬪簳灞傚浣曞疄鐜扮殑:

// FieldByName returns the struct field with the given name

// and a boolean to indicate if the field was found.

func (t *structType) FieldByName(name string) (f StructField, present bool) {

// Quick check for top-level name, or struct without anonymous fields.

hasAnon := false

if name != "" {

for i := range t.fields {

tf := &t.fields[i]

if tf.name == nil {

hasAnon = true

continue

}

if *tf.name == name {

return t.Field(i), true

}

}

}

if !hasAnon {

return

}

return t.FieldByNameFunc(func(s string) bool { return s == name })

}

鍚勪綅鐪嬪畼蹇呴』鍚愭Ы鐢╢or鏉ラ亶鍘嗚幏鍙栨暟鎹? 浣嗗喎闈欎笅鏉ュ垎鏋? 榪欐牱鍋氭棤鍙帤闈?
璇曟兂濡傛灉reflect鍖呭湪鎴戜滑浣跨敤ValueOf鏃朵嬌鐢╩ap緙撳啿濂戒竴涓粨鏋勪綋鎵鏈夊瓧孌電殑璁塊棶鏁版嵁鍚? 鑲畾璁塊棶鎸囧畾瀛楁閫熷害浼氬緢蹇?br>浣嗘槸, 浠ョ┖闂存崲閫熷害鐨勯渶姹傚叾瀹炴渶澶氭弧瓚充簡1%鐨勯渶姹?
鍚屾牱鐨勪緥瀛愭槸鍥懼艦API閲岃闂甋hader鍙橀噺鐨勬柟娉? 鎬繪槸榛樿浣跨敤瀛楃涓茶幏鍙? 閫熷害寰堟參. 褰撲綘鎯沖揩閫熻闂椂, 璇鋒彁鍓嶆寜闇緙撳瓨瀛楁
閭d箞, Golang浣跨敤鐨勪篃鏄繖鏍風殑鎬濊礬. 铏界劧鏆村姏浜嗕竴鐐? 浣嗘槸鑳藉璁╃▼搴忚窇瀵? 鎬ц兘浼樺寲鐨勪笢瑗挎斁鍦ㄤ箣鍚庢潵鍋? 緙撳啿涓嬪氨鍙互瑙e喅

  • 鍦ㄨ皟鐢ㄦ祴璇曠敤渚嬩腑, 姣棤鎮康鐨? 璋冪敤閫熷害寰堟參
    鍥犳, 鎴戜滑鍦ㄥ鉤鏃朵嬌鐢ㄥ弽灝勬椂, 灝介噺鍋忓悜浜庡弽灝勫彉閲忕紦鍐插瓨鍦ㄤ笅鐨勫彉閲忚祴鍊兼垨鑰呰幏鍙?br>鑰岃皟鐢ㄧ殑闇姹傚敖閲忓噺灝? 濡傛灉鏈塯oroutine瀛樺湪鐨勬儏鍐典笅, 鍒欎笉蹇呭お澶氭媴蹇?


鎴橀瓊灝忕瓚 2016-08-12 15:26 鍙戣〃璇勮
]]>
鏈嶅姟鍣ㄥ紑鍙戣璦姣旇緝http://www.shnenglu.com/sunicdavy/archive/2016/01/05/212611.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Tue, 05 Jan 2016 08:51:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2016/01/05/212611.htmlhttp://www.shnenglu.com/sunicdavy/comments/212611.htmlhttp://www.shnenglu.com/sunicdavy/archive/2016/01/05/212611.html#Feedback10http://www.shnenglu.com/sunicdavy/comments/commentRss/212611.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/212611.html浠ヤ笅姣旇緝鐨勫熀紜閮芥槸鍩轟簬涓縐嶇紪紼嬭璦+涓瀹氱殑絎笁鏂規垨鑰呰嚜宸辯紪鍐欑殑緗戠粶搴撳拰搴曞眰榪涜鐨勶紝Skynet紼嶅井鐗規畩錛屼絾鎬諱綋姣旇緝鍚堥傛斁鍒版瘮杈冧腑鏉?/p>

C#

寮鍙戞晥鐜囷細Windows涓嬪彲浠ラ氳繃VisualStudio榪涜寮鍙戯紝鍏朵粬騫沖彴鍙互浣跨敤MonoDevelop錛岄潪甯告柟渚?/p>

榪愯鏁堢巼錛欽IT鐨勬ц兘浼樺寲姣旇緝鍒頒綅錛岃兘閫傚簲90%鎬ц兘鐜

閮ㄧ講渚挎嵎鎬э細鍙互閫氳繃浜ゅ弶緙栬瘧鐢熸垚鍏朵粬騫沖彴鐨勫彲鎵ц鏂囦歡錛岄氳繃mono榪愯鍙墽琛屾枃浠?/p>

璋冭瘯渚挎嵎鎬э細VisualStudio鍜孧onoDevelop璋冭瘯鍧囧緢鏂逛究錛?榪樺彲榪滅▼璋冭瘯

涓婃墜搴︼細瀵笴緋昏璦鐔熸倝鐨勫嚑澶╁氨鍙笂鎵?/p>

鐑洿鏂幫細鍙互閫氳繃DLL鏂瑰紡榪涜

Web瀵規帴錛氬彲鍋氾紝浠g爜姣旇緝鍟板棪

宕╂簝澶勭悊錛氬彲閫氳繃try catch鎹曡幏閿欒

緗戠粶搴撶紪鍐欓毦搴︼細涓鑸紝闇娉ㄦ剰gc闂

絎笁鏂圭綉緇滃簱鍙婃鏋舵暟閲忥細涓鑸?/p>

 

Golang

寮鍙戞晥鐜囷細楂?/p>

榪愯鏁堢巼錛氬茍鍙戜笂闈炲父鏈変紭鍔匡紝瀵笴PU鍒╃敤鐜囨瘮杈冮珮錛屽師鐢熻繍琛屾棤铏氭嫙鏈?/p>

閮ㄧ講渚挎嵎鎬э細涓嬈$紪璇戝埌澶勮繍琛岋紝鏃犱換浣曡繍琛屽簱渚濊禆

璋冭瘯渚挎嵎鎬э細瀹為檯鎿嶄綔涓紝鍗曠嚎紼嬫寕鎺ヨ皟璇曞櫒鍙錛?浣嗗彉閲忔樉紺轟笉姝g‘錛屽紑鍙戞湡鍩烘湰閲囩敤鏃ュ織鏂瑰紡榪涜鏌ラ敊

涓婃墜搴︼細璇█綆鍗曪紝鐗規у皯錛?鏂版墜1鍛ㄨ兘璐$尞浠g爜

鐑洿鏂幫細鏃犳硶榪涜鐑洿鏂幫紝璇█鏃犳硶緙栬瘧涓篋LL錛屼篃涓嶆敮鎸丏LL鍔犺澆錛坙inux騫沖彴鐨?so鍔犺澆蹇界暐涓嶈錛?/p>

Web瀵規帴錛氶潪甯告柟渚匡紝 浠g爜綺劇畝

宕╂簝澶勭悊錛氬穿婧冨悗浠ュ懡浠よ鏂瑰紡鎵撳嵃鍑烘爤錛岀▼搴忓唴鍙互鎹曡幏浠諱綍宕╂簝閿欒騫剁戶緇繍琛?/p>

緗戠粶搴撶紪鍐欓毦搴︼細綆鍗曪紝姣擟 socket鏇寸畝鍗?/p>

絎笁鏂圭綉緇滃簱鍙婃鏋舵暟閲忥細鍋忓皯

 

Skynet(lua+C)

寮鍙戞晥鐜囷細鍩轟簬鍔ㄦ佽璦鐨勫紑鍙戝垵嬈″啓姣旇緝蹇紝鍚庢湡緇存姢鍜岄噸鏋勪細鑰楄垂涓瀹氱殑鏃墮棿鍦ㄦ煡閿欎笂

榪愯鏁堢巼錛氬熀浜巐ua jit鐨勮繍琛屾晥鐜囪繕鏄兘鎺ュ彈鐨?/p>

閮ㄧ講渚挎嵎鎬э細鏂逛究錛?鍙湁搴曞眰淇敼闇瑕侀噸鏂扮紪璇戯紝 澶ч儴鍒嗘椂闂村彧鐢ㄦ洿鏂發ua鏂囦歡

璋冭瘯渚挎嵎鎬э細涓嶆槸寰堟柟渚匡紝鍩轟簬鏃ュ織鏂瑰紡榪涜鏌ラ敊

涓婃墜搴︼細lua璇█鐗規ф湁閮ㄥ垎鍜孋緋昏璦鏈変竴瀹氬樊寮傦紝鍩轟簬Actor妯″瀷鐨勬濇兂瀛︿範錛岄傚簲闇瑕佽楄垂涓瀹氱殑鏃墮棿

鐑洿鏂幫細綾諱技浜嶦rlang錛屽彲綺劇‘鍒板嚱鏁扮駭鐨勭儹鏇存柊

Web瀵規帴錛氭湁涓浜沨ttp鏀寔錛岄氳繃紺懼尯鎱㈡參榪涜瀹屽杽

宕╂簝澶勭悊錛歭ua澶╃敓鍙互鎹曡幏閿欒

緗戠粶搴撶紪鍐欓毦搴︼細鑷甫錛屾棤闇緙栧啓

絎笁鏂圭綉緇滃簱鍙婃鏋舵暟閲忥細閫氳繃紺懼尯鎱㈡參瀹屽杽

 

C++

寮鍙戞晥鐜囷細緙栬瘧鎱紝鏂囦歡澶氾紝閫氱敤搴撳皯

榪愯鏁堢巼錛歯ative閫熷害鏍囨潌

閮ㄧ講渚挎嵎鎬э細緙栧啓鍚勭被鐨刴ake闂ㄦ杈冮珮

璋冭瘯渚挎嵎鎬э細鍙氳繃VisualStudio榪涜Windows騫沖彴璋冭瘯

涓婃墜搴︼細2~3騫寸粡楠岀殑鐔熸墜浠嶇劧浼氬啓鍑哄穿婧冨拰娉勯湶浠g爜

鐑洿鏂幫細鍙氳繃DLL榪涜

Web瀵規帴錛氫唬鐮佸暟鍡︼紝絎笁鏂瑰簱灝?/p>

宕╂簝澶勭悊錛歐indows涓嬪彲浣跨敤SEH鎹曡幏孌靛紓甯革紝鍏朵粬騫沖彴鍙兘閫氳繃宕╂簝鍚庤繘琛宑oredump鍒嗘瀽錛屽閿欓潪甯稿樊

緗戠粶搴撶紪鍐欓毦搴︼細鍩轟簬asio緙栧啓杈冧負綆鍗曪紝浣嗘諱綋鐪嬫潵闅懼害涓嶄綆

絎笁鏂圭綉緇滃簱鍙婃鏋舵暟閲忥細杈冨

 

浠ヤ笅鏄緱鍒?/p>

image

 

浠庡彂鏂囨椂鐨勯」鐩榪欎簺璇█浣跨敤鐜囨潵璇達紝Java錛孍rlang錛孋++緙栧啓鐨勬湇鍔″櫒杈冨錛孏olang錛孞avaScript錛孋#鏄浜屾闃燂紝Skynet鐢變簬涓婃墜涓嶆槸寰堝鏄擄紝鎵浠ヤ粎鏈変袱浣嶆暟鐨勫洟闃熷湪浣跨敤錛屼絾鎬諱綋琛ㄧ幇榪樻槸姣旇緝鍑鴻壊鐨?

瀵逛簬鑰佸洟闃燂紝 C++鐨勬湇鍔″櫒宸ュ叿閾懼拰妗嗘灦宸茬粡鐩稿鎴愮啛錛?瀹屽叏娌″繀瑕佹洿鎹㈡柊璇█錛?鍙槸鍦ㄥ鎺dk鎰熻鍥伴毦鏃訛紝鍙互灝濊瘯Golang榪欎簺瀵箇eb鏈変紭鍔跨殑璇█榪涜娣峰悎璇█寮鍙?

瀵逛簬鏂板洟闃燂紝寮鍙戞晥鐜囷紝涓婃墜搴﹀拰閮ㄧ講鏁堢巼鏄紭鍏堥夋嫨鐨勶紝C#錛孏olang錛孞avaScript榪欎簺鏂板叴璇█浼氳浣犱簨鍗婂姛鍊?

瀵逛簬澶ц妯℃棤闇閫夋湇鐨勬湇鍔″櫒錛?Skynet鐨刟ctor妯″瀷瀵規墿灞曚細姣旇緝瀹規槗

瀵逛簬澶у叕鍙革紝濂介」鐩紝涓婄嚎鍚庨渶瑕侀氳繃鐑洿鏂拌繘琛宐ug淇ˉ鐨勶紝C#錛孋++錛孍rlang浼氭槸棣栭?

 

浣嗘葷殑涓鐐癸紝 榪樻槸鏍規嵁鍥㈤槦鐔熸倝搴︽潵閫夋嫨璇█錛岃錘鐒剁殑浣跨敤鏂拌璦鐨勯闄╀篃鏄緢澶х殑

鎴橀瓊灝忕瓚 2016-01-05 16:51 鍙戣〃璇勮
]]>
寮婧怗olang娓告垙鏈嶅姟鍣ㄦ鏋禼ellnethttp://www.shnenglu.com/sunicdavy/archive/2015/10/16/212026.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Fri, 16 Oct 2015 03:44:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2015/10/16/212026.htmlhttp://www.shnenglu.com/sunicdavy/comments/212026.htmlhttp://www.shnenglu.com/sunicdavy/archive/2015/10/16/212026.html#Feedback6http://www.shnenglu.com/sunicdavy/comments/commentRss/212026.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/212026.html綆鍗?鏂逛究,楂樻晥鐨凣o璇█鐨勬父鎴忔湇鍔″櫒妗嗘灦

func server() {
 
    pipe := cellnet.NewEventPipe()
 
    evq := socket.NewAcceptor(pipe).Start("127.0.0.1:7234")
 
    socket.RegisterSessionMessage(evq, coredef.TestEchoACK{}, func(content interface{}, ses cellnet.Session) {
        msg := content.(*coredef.TestEchoACK)
 
        log.Println("server recv:", msg.String())
 
        ses.Send(&coredef.TestEchoACK{
            Content: proto.String(msg.String()),
        })
 
    })
 
    pipe.Start()
 
}
 
func client() {
 
    pipe := cellnet.NewEventPipe()
 
    evq := socket.NewConnector(pipe).Start("127.0.0.1:7234")
 
    socket.RegisterSessionMessage(evq, coredef.TestEchoACK{}, func(content interface{}, ses cellnet.Session) {
        msg := content.(*coredef.TestEchoACK)
 
        log.Println("client recv:", msg.String())
 
    })
 
    socket.RegisterSessionMessage(evq, coredef.SessionConnected{}, func(content interface{}, ses cellnet.Session) {
 
        ses.Send(&coredef.TestEchoACK{
            Content: proto.String("hello"),
        })
 
    })
 
    pipe.Start()
}

 

欏圭洰鍦板潃: https://github.com/davyxu/cellnet



鎴橀瓊灝忕瓚 2015-10-16 11:44 鍙戣〃璇勮
]]>
pp鍔╂墜鏈嶅姟鍣ㄧ鏀粯鐨凴SA鐨勫钁╁叕閽ヨВ瀵嗚璁?/title><link>http://www.shnenglu.com/sunicdavy/archive/2015/10/12/211993.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Mon, 12 Oct 2015 06:27:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2015/10/12/211993.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/211993.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2015/10/12/211993.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/211993.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/211993.html</trackback:ping><description><![CDATA[<p>鏈榪戞帴鍏p鍔╂墜鐨勬湇鍔″櫒绔敮浠? 鎸夌収PP瀹樻柟鎻愪緵鐨勬枃妗f潵鐪? 闇瑕佹湇鍔″櫒鍋歊SA鐨勯獙璇? </p> <p>棣栧厛鎴戜滑鏉ョ湅涓?/p> <h1>RSA鐨勫嚑涓爣鍑嗙敤娉?/h1> <h2>闈炲縐板姞瀵嗚В瀵?/h2> <p>鍋囪A瑕佹妸鍐呭浼犺緭緇橞</p> <p>1. B鐢熸垚RSA鐨勫叕閽ュ拰瀵嗛挜, 榪欐槸鎴愬鍑虹幇鐨? 瀵嗛挜鐢盉淇濆瓨, 鎶婂叕閽ュ憡璇堿</p> <p>2. A鐢˙鐨勫叕閽ュ姞瀵嗗唴瀹? 騫舵妸瀵嗘枃鍐呭浼犺緭緇橞</p> <p>3. B鐢ㄥ瘑閽ヨВ瀵?/p> <h2>楠岃瘉</h2> <p>璇佹槑鏌愪釜鍐呭鏄綘鍙戠殑, 鑰屼笉鏄鍒漢鍐掑悕欏舵浛, 渚嬪git鐨刾ush涓氨甯︽湁榪欎釜鍔熻兘</p> <p>鍋囪A鏈夊唴瀹?  B瑕侀獙璇佸唴瀹圭‘瀹炵敱A鍙戝嚭</p> <p>1. A鐢熸垚鍏挜鍜屽瘑閽?/p> <p>2. A灝嗗唴瀹瑰仛涓涓猦ash, 鎶奾ash鐮佺敤鑷繁鐨勫瘑閽ュ姞瀵嗗茍鎶婅繖孌靛瘑鏂囧彂緇橞</p> <p>3. B鐢ˋ鐨勫叕閽ュ瀵嗘枃榪涜楠岃瘉, 鍗沖彲紜瀵嗘枃鏄惁鐢盇鍙戝嚭</p> <p> </p> <p>鍙互鐪嬪嚭, 涓ょ鐢ㄦ硶閮芥槸鍏稿瀷鐨勯潪瀵圭О鐢ㄦ硶</p> <p>浣哖P鍔╂墜鍗村共浜嗕歡紲炲鐨勪簨鎯?</p> <h1>闈炲縐板綋瀵圭О綆楁硶鍔犺В瀵?/h1> <p>鍦≒P SDK瀹樻柟鏂囨。閲? 鎴戜滑鎵懼埌浜哖HP璇█鐨勯獙璇佹柟娉? 鏂規硶閲屼嬌鐢ㄤ簡榪欐牱涓涓狝PI</p> <p><a >openssl_public_decrypt</a></p> <p>浠庡畼鏂規枃妗g湅寰楀嚭榪欎釜浣跨敤openssl鐨勭畻娉曞簱</p> <p> </p> <p>綾諱技鐨? 榪樻湁Java, C++, Python璇█鐨勫鐞嗘柟娉?/p> <p>鍏朵腑, C++涔熸槸鐢ㄧ殑openssl, Python鍒欐槸闇瑕侀緙栬瘧C搴擄紝鍦║buntu涓嬮渶瑕佹墜宸atch M2Crypto鐨刜ssl.c鏂囦歡.</p> <p> </p> <p>鍏堜笉璇磋繖浜涢潪姝h鐨勭紪璇?patch鏂規硶浼氶犳垚澶氬ぇ鐨勯棶棰? 鍗曞氨榪欎釜鐢ㄥ叕閽ヨВ瀵嗗氨寰堣泲鐤?/p> <p>浠庝箣鍓嶇殑RSA綆楁硶涓簡瑙? 鍙湁瀵瑰叕閽ヨ繘琛岄獙璇佺殑鏂規硶, 涔熷氨鏄彧鑳藉緱鍒版槸榪樻槸涓嶆槸鐨勭粨鏋? 浣哖P鐨凷DK鍒欒姹傚繀欏葷敤鍏挜瑙e瘑鈥?/p> <p>瑙e嚭鐨勬暟鎹負涓孌礿son, 浠ュ姣旀槸鍚︽湁璁㈠崟綃℃敼.</p> <p> </p> <p>閭d箞榪欑鍋氭硶灝辯瓑鏁堜簬, 鐢ㄦ渶綆鍗曠殑寮傛垨+涓涓叕閽ヨ繘琛岃鍗曞姞瀵? 鐒跺悗鍚屾牱鐢ㄨ繖涓叕閽ヨ繘琛岃В瀵?/p> <p>鍙笉榪囩敤RSA鎰熻寰堥珮綰р?/p> <p>榪欑鍋氭硶涓鏃﹀叕閽ュ湪PP鍔╂墜鏈嶅姟鍣ㄦ垨鑰呯帺瀹剁殑寮鍙戞湇鍔″櫒, 鐢氳嚦婧愪唬鐮佹硠闇? 閭d箞椹笂灝辨湁寰堝ぇ鐨勪吉閫犺鍗曠殑鍗遍櫓</p> <p> </p> <p>鎴戞妸榪欎釜鍋氭硶鍙戠粰鏈嬪弸鐪? 浠栦滑璇? 鍏跺疄PP鍔╂墜鐨勫紑鍙戣呭彧綆$敤浜哛SA, 璺熶紶杈撲笉鏄槑鏂囧氨濂戒簡, 鑷充簬浠涔堜俊鎭畨鍏? 閮芥槸灞?</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/211993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2015-10-12 14:27 <a href="http://www.shnenglu.com/sunicdavy/archive/2015/10/12/211993.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀵筭olang鏈嶅姟鍣ㄥ紑鍙戞ā寮忕殑涓浜涙濊?/title><link>http://www.shnenglu.com/sunicdavy/archive/2015/09/09/211784.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 09 Sep 2015 11:06:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2015/09/09/211784.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/211784.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2015/09/09/211784.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/211784.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/211784.html</trackback:ping><description><![CDATA[<h1>澶氱嚎紼?鍚屾闃誨妯″瀷</h1> <p>鍦ㄦ垜浠殑娓告垙欏圭洰涓嬌鐢ㄧ殑golang鏈嶅姟鍣ㄥ紑鍙戞柟寮忓涓?/p> <p>1.澶氱嚎紼嬮昏緫</p> <p>2.鍚屾闃誨. 涔熷氨鏄, 姣忎釜浜轟竴涓嚎紼?goroutine), io綰跨▼=閫昏緫綰跨▼</p> <p>榪欑鏂瑰紡鐨勪紭鐐?</p> <p>1. 鍚屾闃誨鏂瑰紡涓庝漢鐨勬濈淮鏂瑰紡綾誨悓</p> <p>2. 閫昏緫澶勭悊鎬ц兘鏈変竴瀹氭彁鍗?/p> <p>鍦ㄥぇ瑙勬ā浣跨敤榪欑妯″紡緙栧啓閫昏緫鍚? 鎴戜滑鍙戠幇浜嗚繖縐嶆ā寮忓彧鏈?涓己鐐? <strong>緙栧啓鑰呴渶瑕佸鐞嗗綰跨▼鍏崇郴</strong></p> <p>浣嗚繖鏈韓紜疄鐩存帴鑷村懡鐨? 鍥炴兂C++鏃朵唬, 澶氱嚎紼嬪鐞嗘椂, 璋冭瘯閲嶇幇鐨勫洶闅鋸?鑴戣ˉ鏅薄澶儴涓嶆暍鐩磋</p> <h1>鍗曠嚎紼?寮傛澶氳繘紼嬫ā鍨?/h1> <p>鍦–++鏃朵唬, 鎴戞浘緇忕紪鍐欒繃涓濂梐sio鐨凜++鏈嶅姟鍣ㄦ鏋? 閲囩敤io澶氱嚎紼? 閫昏緫鍗曠嚎紼? 渚濊禆鐫C++楂樻ц兘鐨勪紭鍔? 璁╁紑鍙戜究鎹風畝鍗曚笖鏃犻渶鍏沖績綰跨▼闂.</p> <p>閭d箞鍒頒簡golang鏃朵唬, 涓轟粈涔堜笉鑳借瘯涓嬪崟綰跨▼寮傛澶氳繘紼嬫柟寮忔潵緙栧啓閫昏緫?</p> <p>涓庡綰跨▼鍚屾闃誨瀵規瘮鍚? 鎴戜滑鍙戠幇, 涓よ呬紭緙虹偣浜掕ˉ. 閭h繖灝卞洖鍒頒簡棰嗗煙閫夊瀷闂浜? 瀵逛簬娓告垙鏈嶅姟鍣ㄩ渶瑕佺殑涓婃墜綆鍗? 寮鍙戜究鎹? 鍘嬪姏闄嶄綆(闈濵MO)榪欎簺鐗圭偣鏉ヨ, 鍗曠嚎紼嬪紓姝ュ榪涚▼鍐嶅悎閫備笉榪囦簡</p> <p>閭d箞, 鎴戜滑鍦ㄧ敤golang緙栧啓鍗曠嚎紼嬪紓姝ュ榪涚▼鏈嶅姟鍣ㄥ簲璇ユ敞鎰忓摢浜涚偣鍛?</p> <p>1. socket澶勭悊瀹屽叏灝佽, 鍙氳繃channel鎶涘嚭鍒伴昏緫綰跨▼鎺掗槦澶勭悊</p> <p>2. 鏁版嵁搴? rpc鍙婂叾浠杋o澶勭悊, 涓寰嬫敼涓哄紓姝ュ洖璋冩ā寮? 涓嶄嬌鐢ㄥ悓姝ユ帴鍙?/p> <p>3. 鐜╁瀛樼洏鎻愪氦鏁版嵁鍙互鑰冭檻澶嶅埗騫舵彁浜ゅ埌瀛樼洏綰跨▼鏂瑰紡, 鎻愰珮鎬ц兘. </p> <p>4. 閲囩敤澶氳繘紼嬫灦鏋? 姣斿璁劇綉鍏寵繘紼? 鎶奿o鍘嬪姏鍒嗘暎鍒拌繘紼嬩腑</p> <p>5. 閫昏緫緙栧啓涓? 涓嶅厑璁鎬嬌鐢╣o寮綰跨▼鍙奵hannel, 鏈夐渶瑕佹彁楂樻ц兘閮ㄥ垎闇瑕佸崟鐙紪鍐?/p> <p> </p> <h1>Actor妯″瀷鐨勭棝</h1> <p>cellnet鍦ㄥ紑鍙戞椂鏈潵鑰冭檻浣跨敤actor妯″瀷鏉ヨ繘涓姝ョ畝鍖栧綰跨▼閫昏緫鐨勯夯鐑? 緇忓巻浜嗕竴孌墊椂闂寸殑鍘熷瀷寮鍙戝悗, 鍙戠幇浜嗕竴浜涢棶棰? 鍒椾婦濡備笅:</p> <p>1. golang鐨勫己綾誨瀷涓嶉傚悎actor妯″瀷榪欑緇忓父闇瑕佸姩鎬佺敓鎴愬悇綾繪秷鎭殑妯″瀷, 浣唖kynet(C+lua)/erlang灝辨湁澶╃敓浼樺娍</p> <p>2. actor妯″瀷鏈韓涓嶆槸涓囪兘鐨? 涓嶈兘瑙e喅鎵鏈夐渶姹? 鐗瑰埆鏄父鎴?/p> <p>3. actor妯″瀷鐞嗚В鍒板簲鐢ㄦ湁涓瀹氱殑闅懼害. 鏈韓榪橀渶瑕佹惌寤烘鏋? 涓婃墜澶嶆潅</p> <p>鎬諱箣, 鐪嬭繃涓浜沞rlang鍙妔kynet鐨勭敤渚? 娌℃湁搴旂敤鐨勫緢綰涓旀垚鐔熺殑鎴愬姛actor妯″瀷妗堜緥, 浠庝紶緇焥ocket鏈嶅姟鍣ㄦ鏋惰法瓚婂埌actor妯″瀷浼氭壇鍒拌泲, 鍥犳, 鍚庢湡cellnet浼氳冭檻鍥炲綊鍒版垚鐔熺殑socket鏈嶅姟鍣ㄦ鏋? 鎶婃灦鏋勫仛鍒扮畝鍗曚笂鎵? 楂樻墿灞曚笂.</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/211784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2015-09-09 19:06 <a href="http://www.shnenglu.com/sunicdavy/archive/2015/09/09/211784.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>澶ф湇鍔″櫒鏋舵瀯璁ㄨhttp://www.shnenglu.com/sunicdavy/archive/2015/07/21/211321.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Tue, 21 Jul 2015 02:30:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2015/07/21/211321.htmlhttp://www.shnenglu.com/sunicdavy/comments/211321.htmlhttp://www.shnenglu.com/sunicdavy/archive/2015/07/21/211321.html#Feedback8http://www.shnenglu.com/sunicdavy/comments/commentRss/211321.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/211321.html鏈榪戝弬鍔犱簡涓涓ぇ鏈嶅姟鍣ㄦ灦鏋勮璁烘椿鍔? 璁板綍涓嬪績寰?

姒傝堪

娓告垙瀹㈡埛绔噰鐢–ocos2dx-Lua鐨勭函Lua緙栧啓閫昏緫, 鏈嶅姟鍣ㄩ噰鐢℅olang浣滀負寮鍙戣璦

娓告垙綾誨瀷綾諱技浜嶤OC,鍥犳鏃犻渶閫夋湇. 闇瑕佷嬌鐢ㄥぇ鏈嶅姟鍣ㄦ灦鏋勮繘琛屽鐞?

鏁版嵁搴?/b>

閲囩敤Mongodb鍋氭寔涔呭瓨鍌? redis鍋氳法鏈嶉氫俊鏁版嵁浜ゆ崲

浣跨敤UCloud鐨勪簯鎶鏈? 鐪佸幓浜嗙儲浜虹殑榪愮淮宸ヤ綔

閫氫俊鍙婂崗璁?/b>

瀹㈡埛绔拰鏈嶅姟鍣ㄩ氳浣跨敤HTTP鐭繛鎺? 鍩轟簬json鐨勬暟鎹皝鍖呭崗璁?

鏈嶅姟鍣ㄩ棿澶ч噺浣跨敤Golang鑷甫鐨刯son+rpc榪涜閫氫俊

鏈嶅姟鍣ㄧ被鍨?/b>

鏈嶅姟鍣ㄧ被鍨嬪ぇ鑷村垎涓洪昏緫鏈嶅姟鍣?鎴樻枟鏈嶅姟鍣? 涓績鏈嶅姟鍣?

閫昏緫鏈嶅姟鍣?/b>

閫昏緫鏈嶅姟鍣ㄨ礋璐f棩甯擱昏緫鍙婂叕鍏遍昏緫澶勭悊(濂藉弸, 鍏細)

1涓昏緫鏈嶅姟鍣ㄥ搴斾竴涓尯, n涓尯鍧囦嬌鐢║cloud浜慚ongodb榪涜鏁版嵁瀛樺偍

鎴樻枟鏈嶅姟鍣?/b>

鎴樻枟鏈嶅姟鍣ㄦ槸涓涓泦緹? 闆嗙兢浼氳繑鍥炰竴涓礋杞芥渶浣庣殑鏈嶅姟鍣ㄨ繑鍥炰嬌鐢?

鎴樻枟鏈嶅姟鍣ㄩ氳繃cgo鎶鏈笌瀹㈡埛绔疌++/lua鐨勬垬鏂楅昏緫榪涜閫昏緫澶嶇敤, 鍦ㄦ鎶鏈笂榪涜

鎴樻枟閫昏緫鐨勬牎楠?

涓績鏈嶅姟鍣?/b>

瀹㈡埛绔櫥闄嗗墠, 鍦ㄤ腑蹇冩湇鍔″櫒榪欓噷鑾峰緱鍙櫥闄嗙殑閫昏緫鏈嶅姟鍣ㄥ湴鍧, 鍚屾椂鍋氫竴涓礋杞藉潎琛?

鐭繛鎺?

璇勪環

鐢變簬鎿嶄綔緋葷粺鐨勬妧鏈秼浜庣ǔ瀹? 鍚屾椂, 鎵嬫父鐨勫急浜や簰鍨嬪鑷寸殑娓告垙鏋舵瀯瓚嬩簬綆鍗? 鍥犳緗戠粶璐熻澆涓嶅啀鏄父鎴忔湇鍔″櫒鎶鏈殑鐡墮. 浠庣粡楠岀湅鏉? 娓告垙鏈嶅姟鍣ㄦ妧鏈? 鏇撮噸瑕佺殑鏄繕鏄湅鏁版嵁搴撶殑閫夊瀷鍙婂鐞嗘柟寮? 

铏界劧Mongodb鐨勬ц兘涓婁笉濡傚唴瀛樻暟鎹簱. 浣嗘槸浠庡瓨鍌ㄥ畨鍏ㄦт笂瑕佹瘮涓漢鎼緩鐨勫唴瀛樻暟鎹簱綆鍗? 瀹夊叏

澶栧姞涓婁簯鎶鏈殑寮曠敤, 鎬ц兘鐨勭摱棰堝拰榪愮淮鐨勬妧鏈鏉傚害榪庡垉鑰岃В

Redis鐢ㄤ簬璺ㄦ湇鏁版嵁浜や簰閭f槸鍐嶅ソ涓嶈繃鐨勬暟鎹腑浠嬩簡, 淇濊瘉閫熷害鍜岀ǔ瀹氭? 緇濆涓嶆槸閫犺疆瀛愯兘姣旀嫙鐨?

鐭繛鎺ュ湪鎵嬫父涓婂鐞嗚搗鏉ユ瘮闀胯繛鎺ョ畝鍗曚竴浜? 鏃犻渶鍋氭柇綰塊噸榪? 鏈嶅姟鍣ㄧ殑搴曞眰涔熸槸鐢盙olang鐨勬鏋跺簱淇濊瘉璐ㄩ噺鐨? 鍥犳璐熻澆姣棤闂. 鏈嶅姟鍣ㄥ鍐呭強瀵瑰鍧囦嬌鐢╦son榪涜鏁版嵁浜ゆ崲, 綆鍖栦簡鍗忚澶勭悊. 涔熸柟渚夸簡璋冭瘯

json rpc鐨勬ц兘鎹熻楀浜庢暣涓昏緫鐨勫鐞嗘潵璇村潎鍙互蹇界暐涓嶈



]]>
娓告垙鏁版嵁搴撻夊瀷mysql,mongo, redis, memcachedhttp://www.shnenglu.com/sunicdavy/archive/2015/06/19/210992.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Fri, 19 Jun 2015 08:23:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2015/06/19/210992.htmlhttp://www.shnenglu.com/sunicdavy/comments/210992.htmlhttp://www.shnenglu.com/sunicdavy/archive/2015/06/19/210992.html#Feedback5http://www.shnenglu.com/sunicdavy/comments/commentRss/210992.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/210992.html鏁版嵁搴撻夋嫨鍘嗙▼

鎴戜滑鐨勯」鐩竴鐩翠嬌鐢∕ySQL浣滀負鏁版嵁搴? 鏃犺鏄粠C++鐨勬湇鍔″櫒, 榪樻槸鍒癎olang鏈嶅姟鍣? 褰撳勾鎼炴湇鍔″櫒鏃? 鐪嬪ぇ閮ㄥ垎浜洪兘鏄敤SQL(MySQL/SQLServer), 鑰孧ongo鎰熻鍍忛偑鏁欎竴鏍? 鍐嶅姞涓婃湇鍔″櫒榪樻槸Linux姣旇緝姝g粺, 鎵浠ユ灉鏂変簡MySQL.

鍒氬紑濮嬫劅瑙?娓告垙鏈嶅姟鍣ㄧ殑鏁版嵁瀛樺偍鍏跺疄搴旇鏄洰紲炲湥鐨勮繃紼? 閭d箞澶氱殑鏁版嵁, 闇瑕佹寜鐓ySQL涓鏍峰垎琛? 鍒嗗瓧孌靛瓨鍌? 涓轟簡鏌ヨ, 榪樿涔栦箹鐨勫涓涓婼QL鐨勮娉?/p>

灝辮繖涔堟姌鑵句簡鍑犲勾. 鍦ㄤ簯DB鐨勮挋钄戒笅, 涓鐩磋涓篗ySQL灝辨槸鍋氭父鎴忔湇鍔″櫒瀛樺偍鐨勪笓涓氭妧鏈? 鍒嗗竷寮忓拰瀛樺偍鍘嬪姏涓瀹氫氦緇欎簯DB鏉ュ仛. 鐩村埌鐪熸璇曚簡涓婲oSQL鍦ㄦ父鎴忔湇鍔″櫒寮鍙戦噷鐨勬濊礬.

鐢ㄤ簡Golang, 鎵嶅彂鐜板悓姝ュ啓閫昏緫鏄涔堢殑浼橀泤.

鐢ㄤ簡NoSQL緋誨垪鐨勬暟鎹簱, 鎵嶆剰璇嗗埌: 娓告垙鏈嶅姟鍣ㄧ殑鏁版嵁瀛樺偍鍜屾父鎴忔湇鍔″櫒鐨勫瓨鐩樹袱涓蹇靛樊寮傚叾瀹炶洰澶х殑.

MySQL涓? 鑳屽寘鍏跺疄璺熻鑹插畬鍏ㄦ病鏈夊叧緋? 鍙槸閫氳繃1涓鑹瞚d鏄犲皠榪囧幓, 浜轟負鐨勫壊瑁備簡鏁版嵁鐨勫叧鑱旀? 榪樼‖鐢熺敓鐨勬暣鍑轟釜姒傚康鍙粨鏋勫寲鏌ヨ璁╀綘瀛?/p>

NoSQL涓? 鍙槸鎶婃暟鎹簱褰撴垚鏄瓨鍌ㄧ偣, 姣忎釜瑙掕壊鐨勬暟鎹槸瀹屾暣鐨勪竴鍧? 閲岄潰鎬庝箞瀛橀殢浣犱究. 姣忎釜瑙掕壊閫氳繃id鏉ユ煡璇? 鍏朵粬閮芥病鏈変簡

浜庢槸涔? 娓告垙寮鍙戝彉寰楀紓甯哥畝鍗? MySQL瑙掕壊榪涢棬鏌ヨ4~5嬈℃墠鑳芥悶瀹氳鐨勬暟鎹?鑰孨oSQL涓鍙f皵鍏ㄦ煡鍑烘潵, 瀛樼洏涔熸棤闇澧為噺, 鐩存帴瀛樼洏灝卞彲浠ヤ簡

鎵浠ョ幇鍦ㄨ寰? NoSQL鐨勬濊礬瀵逛簬娓告垙鏈嶅姟鍣ㄥ瓨鍌ㄦ潵璇寸畝鐩存槸瀹岀編鐨?

杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy

 

NoSQL鏁版嵁搴撴柟妗堝姣?/h1>

NoSQL涓嬪疄鐜版柟妗堝緢澶? 娓告垙甯哥敤鐨勫氨榪欎箞3瀹? mongo, redis, memcached

涓嬮潰璇翠笅浼樼己鐐?/p>

mongo

紓佺洏鏄犲皠鍐呭瓨鏁版嵁搴?/p>

value涓篸ocument綾誨瀷, 鍩轟簬BSON鐨剉alue搴忓垪鍖?/p>

搴旂敤鍦烘櫙:

閫傚悎澶氬啓灝戣, 渚嬪鏃ュ織鍜屽浠?/p>

杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy

 

redis

鍐呭瓨鏁版嵁搴?/p>

鍗曟牳

value闄愬埗512M

澶氱value綾誨瀷, 娓告垙鐢ㄩ斾嬌鐢ㄧ鏈夌殑搴忓垪鍖栧崗璁?渚嬪protobuf)

鏀寔钀藉湴(bgsave)

鐢ㄦ埛: 鏂版氮, 娣樺疂, Flickr, Github

搴旂敤鍦烘櫙: 閫傚悎璇誨啓閮藉緢楂? 鏁版嵁澶勭悊澶嶆潅絳?/p>

杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy

 

memcached

鍐呭瓨鏁版嵁搴?/p>

澶氭牳

value闄愬埗1M

涓嶆敮鎸佽惤鍦?鎸佷箙鍖?

鐢ㄦ埛: LiveJournal銆乭atena銆丗acebook銆乂ox

搴旂敤鍦烘櫙: 鍔ㄦ佺郴緇熶腑鐨勭紦鍐? 閫傚悎澶氳灝戝啓

杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy

涓漢璇勪環

memcached 閫傚悎緗戦〉緙撳啿, 娓告垙閲屽緢灝戞湁浣跨敤. 鐩墠鍙湁鑵捐浜戞敮鎸佷簯memcached

redis闈炲父閫傚悎娓告垙鐨勫唴瀛樻暟鎹簱, 浣嗘槸钀藉湴絳栫暐浼氭瘮杈冨鏉? 闇瑕佸叿浣撳垎鏋? 鍙互鍙傝冨悗闈㈢殑閾炬帴鐪嬩笅浜戦鎬庝箞澶勭悊榪欎釜闂

mongo鏁版嵁搴撳湪鏃╂湡榪樻槸闈炲父涓嶉敊鐨凬oSQL鐨勬暟鎹簱. 宸ュ叿姣旇緝鏂逛究, 鍙鍖? 浣嗘槸闅忕潃榪戝勾鏉ユ父鎴忕殑騫跺彂搴﹁秺鏉ヨ秺楂? 鎵浠ヤ負浜嗕竴嬈″埌浣? 寰堝浜鴻繕鏄夋嫨浜唕edis

涓嬪浘鍙傝冭嚜鐭ヤ箮闂. 閾炬帴鍦ㄥ悗闈㈡湁鎻愮ず, 鑻ヤ鏡鏉冭鑱旂郴鍒犻櫎

杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy

image

鍙傝冮摼鎺?

    璋堣皥闄岄檶浜夐湼鍦ㄦ暟鎹簱鏂歸潰韙╄繃鐨勫潙( Redis 綃?

http://blog.codingnow.com/2014/03/mmzb_redis.html

杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy

Memcache,Redis,MongoDB錛堟暟鎹紦瀛樼郴緇燂級鏂規瀵規瘮涓庡垎鏋?/p>

http://blog.csdn.net/suifeng3051/article/details/23739295

 

http://www.zhihu.com/question/31417262



]]>
golang鐨勪竴涓嚎紼嬭皟搴﹁鍋滄鐨勯棶棰樺鐞?/title><link>http://www.shnenglu.com/sunicdavy/archive/2015/01/30/209677.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Fri, 30 Jan 2015 08:25:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2015/01/30/209677.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/209677.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2015/01/30/209677.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/209677.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/209677.html</trackback:ping><description><![CDATA[<p>鏈榪戝彂鐜? golang鍐欑殑娓告垙鏈嶅姟鍣? 鍦ㄩ潪璋冭瘯鐘舵佷笅, 涓鍒囨甯? 浣嗘槸鍦ㄦ寕鎺db璋冭瘯鏃? 鏃犳硶鏀跺埌緗戠粶娑堟伅. 鎵撲簡寰堝鏃ュ織, 鍙戠幇, 鍙鏈塯oroutine鐨勫湴鏂? 閮芥病鏈夊垏鎹㈣繘鍏? </p> <p>鍥炴兂浜嗕笅, goroutine鐨勮皟搴﹁鍒? 1.4涔嬪墠, 鍦ㄧ鍒皊yscall鏃? goroutine浼氳璋冨害騫跺鐞? 1.4鍚? 鍙鏈夊嚱鏁拌皟鐢ㄦ椂, 鍧囦細榪涜涓嬈¤皟搴? 瀵嗗害姣斾互鍓嶅鍔犱簡, 鏇村姞鎺ヨ繎鐪熺嚎紼嬬殑澶勭悊. </p> <p>鏍規嵁榪欎釜鍘熺悊, 闂搴旇鍑虹幇鍦ㄦ湇鍔″櫒搴曞眰娌℃湁緇欑郴緇熸彁渚涜皟搴︽満浼氱殑鐐逛笂. 鎴戜滑鐨勬湇鍔″櫒閫氳繃涓涓猙ool鍨嬬殑chan榪涜闃誨, 璁╂湇鍔″櫒緇存寔闃誨榪涜娑堟伅澶勭悊涓嶉鍑? 浣嗘槸鏈榪戜負浜嗗湪windows涓嬫彁渚涘懡浠よ鏀寔, 澧炲姞浜嗕竴浜涗唬鐮? 濡備笅</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"><span id="hvzpftn" class="lnum"> 1: </span>func WaitForExit() {</pre><pre><span id="hvzpftn" class="lnum"> 2: </span> </pre><pre class="alt"><span id="hvzpftn" class="lnum"> 3: </span> <span id="hvzpftn" class="kwrd">if</span> len(peerMap) == 0 {</pre><pre><span id="hvzpftn" class="lnum"> 4: </span> log.Println(<span id="hvzpftn" class="str">"no peer running, exit!"</span>)</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 5: </span> <span id="hvzpftn" class="kwrd">return</span></pre><pre><span id="hvzpftn" class="lnum"> 6: </span> }</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 7: </span> </pre><pre><span id="hvzpftn" class="lnum"> 8: </span> <span id="hvzpftn" class="rem">// 鍛戒護琛屽姛鑳藉彧鍦╳indows涓嬪惎鐢?/span></pre><pre class="alt"><span id="hvzpftn" class="lnum"> 9: </span> <span id="hvzpftn" class="kwrd">if</span> runtime.GOOS == <span id="hvzpftn" class="str">"windows"</span> {</pre><pre><span id="hvzpftn" class="lnum"> 10: </span> reader := bufio.NewReader(os.Stdin)</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 11: </span> </pre><pre><span id="hvzpftn" class="lnum"> 12: </span> var running <span id="hvzpftn" class="kwrd">bool</span> = <span id="hvzpftn" class="kwrd">true</span></pre><pre class="alt"><span id="hvzpftn" class="lnum"> 13: </span> </pre><pre><span id="hvzpftn" class="lnum"> 14: </span> go func() {</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 15: </span> select {</pre><pre><span id="hvzpftn" class="lnum"> 16: </span> <span id="hvzpftn" class="kwrd">case</span> <-exitChan:</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 17: </span> running = <span id="hvzpftn" class="kwrd">false</span></pre><pre><span id="hvzpftn" class="lnum"> 18: </span> }</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 19: </span> }()</pre><pre><span id="hvzpftn" class="lnum"> 20: </span> </pre><pre class="alt"><span id="hvzpftn" class="lnum"> 21: </span> <span id="hvzpftn" class="kwrd">for</span> running {</pre><pre><span id="hvzpftn" class="lnum"> 22: </span> data, _, _ := reader.ReadLine()</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 23: </span> command := <span id="hvzpftn" class="kwrd">string</span>(data)</pre><pre><span id="hvzpftn" class="lnum"> 24: </span> </pre><pre class="alt"><span id="hvzpftn" class="lnum"> 25: </span> dispatchConsoleCommand(command)</pre><pre><span id="hvzpftn" class="lnum"> 26: </span> }</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 27: </span> } <span id="hvzpftn" class="kwrd">else</span> {</pre><pre><span id="hvzpftn" class="lnum"> 28: </span> <span id="hvzpftn" class="rem">// Linux鐜</span></pre><pre class="alt"><span id="hvzpftn" class="lnum"> 29: </span> <-exitChan</pre><pre><span id="hvzpftn" class="lnum"> 30: </span> }</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 31: </span> </pre><pre><span id="hvzpftn" class="lnum"> 32: </span>}</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>鎴戞殏鏃跺睆钄戒簡鏂板姞鐨勮繖濂楀姛鑳? 緇存寔<-exitChan, 闂椹笂瑙e喅</p> <p>緇撳悎鍓嶉潰鐨勭寽嫻? 鎴戜及璁″湪reader.ReadLine()鍑芥暟鍐? 娌℃湁緇欏簳灞傛彁渚涜皟搴︾殑鏈轟細, 瀵艱嚧鍏朵粬goroutine鏃犳硶榪愯, 閫犳垚鏈嶅姟鍣ㄥ崱姝?/p> <p>鎶鏈璁虹兢:  309800774 嬈㈣繋golang鐖卞ソ鑰呭姞鍏? 綰妧鏈爺璁?/p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/209677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2015-01-30 16:25 <a href="http://www.shnenglu.com/sunicdavy/archive/2015/01/30/209677.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C/C++鏈嶅姟鍣ㄦ灦鏋勬満鍒惰璁℃葷粨http://www.shnenglu.com/sunicdavy/archive/2014/12/18/209225.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 18 Dec 2014 08:39:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2014/12/18/209225.htmlhttp://www.shnenglu.com/sunicdavy/comments/209225.htmlhttp://www.shnenglu.com/sunicdavy/archive/2014/12/18/209225.html#Feedback1http://www.shnenglu.com/sunicdavy/comments/commentRss/209225.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/209225.html榪戞湡鍦ㄥ啓鍩轟簬go鐨勬父鎴忔湇鍔″櫒妗嗘灦, 鍦ㄥ叏闈㈣劚紱籆/C++鍓? 闇瑕佸鑰佹灦鏋勮繘琛屼竴涓葷粨

鍩轟簬C/C++娓告垙鏈嶅姟鍣ㄦ鏋舵諱綋璁捐鐨勮繕鏄笉閿欑殑, 鍏勫紵浠諱綋浣跨敤鏁堟灉閮芥槸濂借瘎. 鍥犱負鍦ㄦ妧鏈笂鍠滄"鍋鋒噿", 鎵浠ュ湪寰堝璁捐涓? 閮芥槸鍔涙眰綆鍗? 楂樻晥(寮鍙戞晥鐜?.

鍩轟簬浠誨姟鐨勫紓姝B鏌ヨ緋葷粺, 甯﹀閲嶅紓姝ョ殑鍚屾

浠g爜紺轟緥:

   1:   
   2:  void BatchQueryPlayerInfo( uint32 ClientID, const std::string& AccountName, int64 CharID )
   3:  {
   4:      GDBExecutor->Commit
   5:          (    
   6:          dynamic_cast<DBDataTask*>( (new DBQueryCharInfo(  ClientID, CharID ) ) 
   7:          ->LinkAtomTask( new DBQueryQuest( ClientID, CharID ) )
   8:          ->LinkAtomTask( new DBQuerySkill( ClientID, CharID ) )
   9:          ->LinkAtomTask( new DBQueryHero( ClientID, CharID ) )
  10:          ->LinkAtomTask( new DBQueryAccountInfo( ClientID, AccountName ) )
  11:          ->LinkAtomTask( new DBQueryEquip( ClientID, CharID ) )
  12:          ->LinkAtomTask( new DBQueryObject( ClientID ,CharID ) )
  13:          ->LinkAtomTask( new DBQueryLevel(ClientID, CharID))
  14:          ->LinkAtomTask( new DBQueryChapter(ClientID, CharID))
  15:          ->LinkAtomTask( new DBQueryActivity( ClientID, CharID ))
  16:          )
  17:          );
  18:   
  19:  }

榪欐涓昏澶勭悊鐜╁鍦ㄧ櫥闄嗘椂, 闇瑕佷粠DB鏌ヨ澶ч噺鐨勪笉鍚屽垎綾葷殑鏁版嵁. 涓轟簡淇濊瘉鏁堢巼, 鎴戣姣忎釜Task騫惰鎵ц, 鐒跺悗閫氳繃涓涓満鍒? 璁╂墍鏈変換鍔″畬鎴愬悗, 鍥炶皟絎竴涓換鍔$殑涓涓嚱鏁? 榪欐牱灝辨棤闇鎵嬪姩瀹炵幇寰堝綺樺悎浠g爜, 閬垮厤浜嗗弽澶嶈皟璇曞拰閿欒

鍩轟簬protobuf鍙嶅皠鏈哄埗鐨勮鍙ヨ嚜鍔ㄥ悎鎴?/strong>

   1:  DBUpdateCharInfo::DBUpdateCharInfo( int64 CharID, const std::string& Buffer )
   2:  {
   3:      char buffer[256];
   4:   
   5:      sprintf( buffer, "update tb_char set $FIELD$ where charid = %lld;", CharID );
   6:          
   7:      ExecuteCommand( buffer, Buffer, dbopr::FET_Equation );
   8:  }

榪欐灝辨槸涓涓吀鍨嬬殑DB浠誨姟, 鏋勯犲嚱鏁版彁渚涗簡CharID鍜屼竴涓敱緇撴瀯浣撳簭鍒楀寲濂界殑buffer, $FIELD$瀛楁, 鏄氳繃鍙嶅皠鏍規嵁Buffer鍐呭, 鑷姩濉厖瀛楁

榪欐渚嬪瓙涓? $FIELD$鍙互濉厖涓?hp=100, mp=100涔嬬被鐨? 鑷姩濉厖閬垮厤浜嗗洜涓烘坊鍔犲瓧孌電殑鍒板娣誨姞浠g爜, 榪橀渶瑕佽皟璇? 瀹規槗鎼為敊

 

閰嶇疆緋葷粺姒傚康

鍩轟簬鍚屼竴涓厤緗郴緇? 鍒嗗眰瀹炵幇涓嶅悓鐨勯渶姹? 鏇寸畝鍗曠殑璇? 瑙e喅鐨?涓疄闄呴棶棰樻槸:

鑷繁鏀逛簡閰嶇疆鏂囦歡涓殑ip, 涓婁紶svn鍚? 瑕嗙洊浜嗗埆浜虹殑閰嶇疆, 寰堝浜虹殑瑙e喅鏂規硶閮芥槸, 鏈湴閰嶇疆涓嶆彁浜? 浣嗗悓鏃墮棶棰樺張鏉ヤ簡:

褰撻厤緗腑鏈夊埆浜烘柊鍔犵殑緋葷粺閰嶇疆, 鎬庝箞淇濊瘉姣忎釜浜洪兘鑳芥洿鏂板埌?

涓婄嚎鍚? 鏈嶅姟鍣ㄤ氦浠樿繍緇? 浠栦滑浼氬閰嶇疆鏈変竴瀹氱▼搴︾殑淇敼, 榪欎釜鏃跺欐庝箞鍚堝茍紼嬪簭閰嶇疆鍜岃繍緇撮厤緗?

鍏跺疄瀵逛簬鍐茬獊鐨勯渶姹? 鍙瀵圭郴緇熻繘琛屽垎灞傚氨鍙互瑙e喅闂,鎴戠殑澶勭悊鏂瑰紡:

閰嶇疆鍒嗕負:

鍏ㄥ眬閰嶇疆: 鎵鏈夋湇鍔$殑鎬諱綋閰嶇疆

鍗曟湇鍔¢厤緗? 鏈湇鍔$殑閰嶇疆, 娑夊強緗戠粶鍙婇昏緫

鏈湴閰嶇疆: 榪欎釜閰嶇疆姣忎釜浜轟竴浠? 涓嶄笂浼燬VN

鍛戒護琛岄厤緗? 鏍煎紡鍜屽墠闈㈢殑涓鑷? 榪欏潡灝卞彲浠ラ氳繃榪愮淮榪涜閰嶇疆

鎬諱綋緇撴瀯鍏跺疄灝辨槸OO鐨勬淳鐢熸蹇? 涓嬪眰鍙互瑕嗙洊, 淇敼涓婂眰鐨勯厤緗?/p>

 

鏈嶅姟鍣ㄤ簰鑱斿強璇嗗埆妗嗘灦

鍩烘湰鍔熻兘: 鍩轟簬涓浜涚畝鍗曠殑閰嶇疆灝卞彲浠ュ皢澶氬彴鏈嶅姟鍣? 鍚岀綾葷殑涓嶅悓鏈嶅姟鍣ㄤ簰鐩歌繛鎺ヨ搗鏉? 鏂嚎鑷姩閲嶈繛.

鏈嶅姟鍣ㄨ繛鎺ュ悗, 鎵鏈夋湇鍔″櫒鍙煡鏅撳茍鍙嚜鍔ㄦ寜闇榪炴帴

閫昏緫绔篃寰堟柟渚跨殑榪涜騫挎挱鎴栬呭崟鐙彂閫佺瓑

涔熷氨鏄, 姣忎釜鏈嶅姟鍣ㄧ殑榪炴帴鍜屾帴鍙楃閮芥槸甯﹁瘑鍒悕縐版垨id鐨?

鍚庨潰瑙夊緱榪欏涓滆タ瀹炲湪鏄仛鐨勫鏉? 澶氭暣鍑轟竴鍙頒腑蹇冩湇鍔″櫒鏉ュ仛. 浣嗗ソ姝規鏋剁ǔ瀹氫笅鏉ヤ簡, 涔熷氨濂戒簡.

 

鍩轟簬lua鐨勬湇鍔″櫒web鍚庡彴妗嗘灦

鎬濇兂鏄緢涓嶉敊鐨?  C++ 閰嶅悎lua鏈韓緇濆鏄釜澶辮觸

闂鍑哄湪web澶勭悊,鏈韓閮芥槸涓涓悓姝ラ樆濉炶繃紼? 鑰岃繖涓悗鍙版鏋舵槸寮傛鏂瑰紡鏉ュ仛, 鎵浠ョ壒鍒埆鎵?/p>

涓嶈繃姣旇搗浠ュ墠鐨勬湰鍦癎M緋葷粺, 榪欏潡鐨勮璁℃槸浼熷ぇ鐨勮繘姝?/p>

 

鐜板湪姝e湪璁捐鍩轟簬golang鐨勬湇鍔″櫒妗嗘灦, 鍩烘湰妗嗘灦宸茬粡瀹屽伐, 絳夊緟緙栧啓閫昏緫鍚庣殑瀹炴垬嫻嬭瘯

浠ヤ笂鐨勫緢澶氭濇兂鍦╣olang鐨勬湇鍔″櫒妗嗘灦閮芥湁鏀硅繘, 鐗瑰埆鏄痝olang鏈韓鍋歸eb涔熸槸浼樼鐨? 澶栧姞martini榪欑鐗沊妗嗘灦, 鏇存槸姘村埌娓犳垚

濡傛灉浣犲鏈嶅姟鍣ㄦ鏋惰璁℃湁鐗瑰埆鐨勮璇? 鎴栬呮兂紕版挒鎬濇兂, 鍙互鍔犲崥瀹㈢兢 309800774鎴栬呮垜鐨剄q: 20998333璁ㄨ



]]>
鍦╨iteide涓紝 鑷姩get絎笁鏂瑰寘http://www.shnenglu.com/sunicdavy/archive/2014/11/27/208971.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 27 Nov 2014 09:19:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2014/11/27/208971.htmlhttp://www.shnenglu.com/sunicdavy/comments/208971.htmlhttp://www.shnenglu.com/sunicdavy/archive/2014/11/27/208971.html#Feedback2http://www.shnenglu.com/sunicdavy/comments/commentRss/208971.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/208971.htmlLiteIDE涓湁涓涓猤et鎸夐挳鍙互妯℃嫙go get 鈥搗 鐨勬搷浣?/p>

image

浣嗛粯璁ゅ洜涓烘壘涓嶅埌git鑰屾姤閿欍?瑙e喅鏂規硶濡備笅錛?/p>

鍦?a title="http://git-scm.com/downloads" >http://git-scm.com/downloads涓嬭澆瀵瑰簲騫沖彴git

鍦↙iteIDE鐨勬煡鐪?>緙栬緫鐜鍙橀噺涓紝 淇敼PATH錛?鍔犲叆git璺緞銆備緥濡?/p>

PATH=c:\mingw64\bin;%GOROOT%\bin;c:\Program Files (x86)\Git\bin;%PATH%

鍐嶆寜涓婫et閿紝 絎笁鏂瑰寘灝變細鑷姩鏇存柊浜?/p>

]]>
Linux x64騫沖彴golua鐨勫畨瑁呭強浣跨敤http://www.shnenglu.com/sunicdavy/archive/2014/03/18/206207.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Tue, 18 Mar 2014 04:51:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2014/03/18/206207.htmlhttp://www.shnenglu.com/sunicdavy/comments/206207.htmlhttp://www.shnenglu.com/sunicdavy/archive/2014/03/18/206207.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/206207.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/206207.html榪欓噷浣跨敤鐨刧olua鐗堟湰鏄?a title="https://github.com/aarzilli/golua" >https://github.com/aarzilli/golua

鎸夌収浣滆呯殑瀹夎鏂規硶鍦ㄥぉ鏈濊涓嶉氱殑, 鍘熷洜浣犳噦鐨?/p>

鍥犳榪涘叆榪欎釜閾炬帴, 鐐瑰嚮鍙寵竟鐨凞ownload ZIP涓嬭澆蹇収鍖?/p>

涓嬭澆濂藉悗鏀懼埌浣犵殑GOPATH鎸囧畾璺緞, 鏁寸悊璺緞濡備笅

github.com\aarzilli\golua\

鍏朵笅鐨勭洰褰曞涓?/p>

example\
    lua\
    LICENSE
    README.md
    TODO

鐒跺悗鍑嗗lua5.1鐨勫紑鍙戝寘

lua-5.1.4.tar.gz

榪樻湁2涓涓夋柟渚濊禆鍖?/p>

readline-6.2.tar.gz

ncurses-5.9.tar.gz

鐩存帴configure 鈥?gt; make install 瑁呭ソ

 

go env紜浣犵殑GOPATH宸茬粡鎸囧悜浣犵殑寮鍙戠洰褰?/p>

golua榛樿浣跨敤cgo榪涜緙栬瘧, 鍙兘浼氭姤閿? 淇敼lua.go鐨刢go瀹氫箟濡備笅

#cgo linux,!llua,!luaa LDFLAGS: -llua -lm 鈥搇dl

榪涘叆$GOPATH\src\github.com\aarzilli\golua\lua

鎵цgo install

瀹屾垚



]]>
[杞琞Go 1.3+ 緙栬瘧鍣ㄥ彉闈?/title><link>http://www.shnenglu.com/sunicdavy/archive/2014/01/22/205525.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 22 Jan 2014 04:23:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2014/01/22/205525.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/205525.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2014/01/22/205525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/205525.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/205525.html</trackback:ping><description><![CDATA[<h3>姒傝堪</h3> <p>鐩墠Go緙栬瘧鍣ㄦ槸C鍐欑殑錛屾槸鏃跺欐崲鎴怗o鍟︺?<h5>鑳屾櫙</h5> <p>鈥済c"Go宸ュ叿閾炬潵鑷狿lan 9緙栬瘧鍣ㄧ殑宸ュ叿閾俱傜粍瑁呭櫒銆丆緙栬瘧鍣ㄥ拰閾炬帴鍣ㄥ熀鏈病鍙樸侴o鐨勭紪璇戝櫒(cmd/gc,cmd/5g,cmd/6g,cmd/8g)鏄厤鍚堝伐鍏烽摼鍐欑殑鏂扮殑C紼嬪簭銆?<p>欏圭洰璧峰鏃訛紝鐢–鑰屼笉鏄疓o鍐欑紪璇戝櫒鏈夊緢澶氬ソ澶勩傜獊鍑虹殑姣斿錛岄鍏堬紝閭f椂鍊橤o榪樹笉瀛樺湪錛屾病娉曞効鍐欑紪璇戝櫒銆傝屼笖瀹為檯涓婏紝灝辯畻瀛樺湪錛屼篃浼氱粡甯告湁鏄庢樉鐨勪笉鍏煎鐨勫彉鍖栥傜敤C涓嶇敤Go鍙互閬垮厤鍒濆鍜屾寔緇紑鍙戝鑷寸殑闂銆傜劧鑰屽浠奊o 1宸茬粡紼沖畾錛屾墍浠ヨ繖浜涙寔緇殑闂鍑忓皯浜嗗緢澶氥?<p>鎸佺畫寮鍙戠殑闂宸茬粡娑堥櫎錛屼負浜嗚Go瀹炵幇鐨勭紪璇戝櫒姣擟鏇存湁鍚稿紩鍔涳紝鍙︿竴浜涘伐紼嬮棶棰樺嚭鐜幫細 <ul> <li> <p>鍐欐紜殑Go浠g爜姣斿啓姝g‘鐨凜浠g爜鏇村鏄撱?/p> <li> <p>璋冭瘯閿欒鐨凣o浠g爜姣旇皟璇曢敊璇殑C浠g爜鏇村鏄撱?/p> <li> <p>浣跨敤Go緙栬瘧鍣ㄩ渶瑕佸Go鏈変竴瀹氱悊瑙c傝岀敤C緙栬瘧鍣ㄨ繕闇瑕佷竴瀹氱悊瑙銆?/p> <li> <p>Go浣垮茍鍙戞墽琛屾瘮C鏇存柟渚褲?/p> <li> <p>Go鏈夋洿濂界殑鏍囧噯鏀寔妯″潡鍖栵紝鑷姩閲嶅啓錛屽崟鍏冩祴璇曞拰鎬ц兘鍒嗘瀽銆?/p> <li> <p>Go姣擟鏇存湁瓚?fun)銆?/p></li></ul> <p>鍩轟簬浠ヤ笂鐞嗙敱錛屾垜浠浉淇℃槸鏃跺欑敤Go鍐橤o緙栬瘧鍣ㄥ暒銆?<h5>璁″垝璁炬兂</h5> <p>鎴戜滑鎵撶畻鐢ㄨ嚜鍔ㄥ寲緲昏瘧宸ュ叿鏉ョ敤Go閲嶅啓鐜板湪C鐨勭紪璇戝櫒銆傝繖涓炕璇戦渶瑕佷竴浜涢樁孌碉紝灝嗕粠Go 1.3寮濮嬫寔緇埌鏈潵鐨勫彂琛岀増銆?<p>絎竴闃舵銆傚紑鍙戝拰璋冭瘯涓涓嚜鍔ㄥ寲緲昏瘧宸ュ叿銆傝繖鍙互鍦ㄦ棩甯稿紑鍙戞椂鍚屾榪涜銆傝屼笖錛屼漢浠繕鍙互鍦ㄨ繖涓樁孌典負C緙栬瘧鍣ㄧ戶緇敼榪涖傝繖涓伐鍏峰伐浣滈噺寰堝ぇ錛屼笉榪囨垜浠湁淇″績瀹屾垚榪欎釜鐗規畩浣垮懡鐨勫伐鍏楓傛湁璁稿C鐨勮蹇墊病娉曞効鐩存帴杞崲鎴怗o錛沵acros(瀹?錛寀nions(鑱斿悎錛屽叡鐢ㄤ綋,)錛宐it fields(浣嶅煙)鍙兘鏈鍏堣冭檻銆傛瘮杈冨垢榪愶紙涓嶆槸宸у悎錛夛紝榪欎簺鍔熻兘鍔熻兘鐢ㄧ殑灝戯紝閮戒細琚炕璇戞帀銆傛寚閽堣繍綆楀拰鏁扮粍涔熼渶瑕佷竴浜涜漿鎹㈠伐浣滐紝灝界緙栬瘧鍣ㄩ噷寰堝皯銆傜紪璇戝櫒閲屼富瑕佹槸tree(鏍?鍜宭inked list(閾捐〃)銆傜炕璇戝伐鍏蜂細淇濈暀娉ㄩ噴鍜孋浠g爜鐨勭粨鏋勶紝鎵浠ョ炕璇戝悗鐨勪唬鐮佸拰褰撳墠鐨勭紪璇戝櫒浠g爜涓鏍峰彲闃呰銆?<p>絎簩闃舵銆傜敤緲昏瘧宸ュ叿杞崲C浠g爜鍒癎o錛屽茍鍒犻櫎C婧愮爜銆傝繖鏃舵垜浠凡緇忓紑濮嬬炕璇戯紝浣嗘槸Go榪樻槸榪愯鍦–緙栬瘧鍣ㄤ笂銆傞潪甯鎬箰瑙傜殑錛岃繖鍙兘鍙戠敓鍦℅o 1.3銆備笉榪囨洿鍙兘鏄疓o 1.4銆?<p>絎笁闃舵銆備嬌鐢ㄤ竴浜涘伐鍏鳳紝鍙兘鏉ヨ嚜gofix鍜宼he Go oracle錛屾媶鍒嗙紪璇戝櫒鍒板寘錛屾竻鐞嗗拰鏂囨。鍖栦唬鐮侊紝娣誨姞閫傚綋鐨勫崟鍏冩祴璇曘傝繖鏄紪璇戝櫒浼氭槸鍦伴亾鐨凣o紼嬪簭銆傜洰鍓嶆墦綆楀湪Go 1.4瀹炵幇銆?<p>絎洓a闃舵銆備嬌鐢ㄦ爣鍑嗙殑鍒嗘瀽鍜屾祴璇曞伐鍏蜂紭鍖栫紪璇戝櫒鐨凜PU鍜屽唴瀛樹嬌鐢ㄣ傚彲鑳借寮曞叆騫惰銆傚鏋滅湡榪欐牱錛?a >Race Detector</a>(Go鐨勫茍琛岀珵浜夋嫻嬪伐鍏?)浼氭湁寰堝ぇ甯姪銆傝繖鐩爣鍦℅o 1.4錛屽彲鑳介儴鍒嗕細寤跺悗鍒?.5銆傚熀鏈殑浼樺寲鍒嗘瀽浼氬湪絎笁闃舵瀹屾垚銆?<p>絎洓b闃舵銆傦紙鍜屽洓a鍑犳鍚屾椂榪涜錛夊綋緙栬瘧鍣ㄤ緷鐓ф槑鏄劇殑鐣岄檺鍒嗗壊鎴愬寘涔嬪悗錛岄渶瑕佹槑紜紩鍏ヤ竴涓腑浠嬬爜錛屽湪緇撴瀯鏃犲叧鐨勬棤搴忔爲(Node_s)鍜岀粨鏋勭浉鍏崇殑鏈夊簭閾捐〃(Prog_s)涔嬮棿銆傝繖涓腑浠嬬爜搴旇涓嶄緷璧栨暣浣撴灦鏋勶紝浣嗘槸鍖呭惈鍑嗙‘鐨勬墽琛岄『搴忎俊鎭紝鍙互鐢ㄤ簬鏈夐『搴忎絾鏄粨鏋勬棤鍏崇殑鎿嶄綔鐨勪紭鍖栵紝姣斿娓呯悊澶氫綑鐨刵il媯嫻嬪拰鍑虹晫媯嫻嬨傝繖浜涜繃紼嬪熀浜?a >SSA</a>錛堥潤鎬佸崟璧嬪鹼級錛屼綘鍙互浠嶢lan Donovan鐨?go.tools/ssa 鍖呬腑浜嗚В鏇村銆?<p>絎簲闃舵銆傛浛鎹o/parser鍜実o/types鍒版渶鏂幫紙鍏ㄦ柊錛夌殑鐗堟湰銆俁obert Griesemer鍙傝冪幇鍦ㄧ殑緇忛獙錛岃璁轟簡璁捐鏂扮殑parser鍜宼ypes鐨勫彲鑳姐傚鏋滆仈緋諱粬浠埌緙栬瘧鍣ㄥ悗绔紝鐩鎬俊瀵硅璁℃柊鐨凙PI鏈夊緢澶у府鍔┿?<p><strong>鑷睍錛圔ootstrapping錛?/strong>鐢℅o璇█瀹炵幇鐨凣o鐨勭紪璇戝櫒錛屼粠涓寮濮嬪氨瑕佽冭檻濡備綍鑷睍銆傛垜浠冭檻鐨勮鍒欏氨鏄疓o1.3緙栬瘧鍣ㄥ繀欏葷敱Go1.2緙栬瘧錛孏o1.4鐨勭紪璇戝櫒蹇呴』鐢盙o1.4緙栬瘧錛屼互姝ょ被鎺ㄣ?<p>榪欐椂錛屾垜浠氨鏈変簡涓涓竻鏅扮殑嫻佺▼鏉ョ敓鎴愬綋鍓嶇殑紼嬪簭錛氱紪璇慓o1.2鐨勫伐鍏烽摼錛堢敱C緙栧啓錛夛紝鐒跺悗浣跨敤瀹冪紪璇慓o1.3鐨勫伐鍏烽摼錛屼互姝ょ被鎺ㄣ傝繖閲岄渶瑕佷竴涓剼鏈潵鍋氳繖涓簨鎯咃紝鏉ヤ繚璇佸彧浼氭秷鑰桟PU鐨勬椂闂磋岄潪鏌愪釜浜虹殑鏃墮棿銆傝繖鏍風殑鑷睍錛屾瘡涓満鍣ㄥ彧浼氬仛涓嬈★紝Go1.x鐨勫伐鍏烽摼灝嗕細鍦ㄦ湰鍦頒繚鐣欙紝騫跺湪鎵цall.bash鏉ョ紪璇慓o1.(x+1)宸ュ叿閾劇殑鏃跺欒鍐嶆浣跨敤銆?<p>鏄劇劧錛岄殢鐫鏃墮棿鐨勬帹縐昏繖縐嶈嚜涓炬柟寮忔槸涓嶅厖鍒嗙殑銆傚湪鍚庨潰鐨勫涓増鏈鍙戝竷涔嬪墠錛屼負緙栬瘧鍣ㄥ啓涓涓悗绔潵鐢熸垚C浠g爜涔熻鏄竴涓洿鏈夋剰涔夌殑浜嬫儏銆傝繖浜汣浠g爜涓嶈姹傛晥鐜囨垨鍙鎬э紝鍙姝g‘鍗沖彲銆傝繖浜汣浠g爜灝嗕細琚鍏ワ紝灝卞儚鎴戜滑絳懼叆鐢眣acc鐢熸垚鐨剏.tab.c鏂囦歡涓鏍楓傝繖鏍鳳紝鑷睍榪囩▼灝變細鍙樻垚錛氬厛鐢╣cc緙栬瘧C浠g爜鐢熸垚涓涓嚜灞曠紪璇戝櫒錛岀劧鍚庝嬌鐢ㄨ繖涓嚜灞曠紪璇戝櫒鏉ョ紪璇戠湡姝g殑緙栬瘧鍣ㄣ傜被浼間簬鍙︿竴涓嚜灞曡繃紼嬶紝榪欎釜鑷睍緙栬瘧鍣ㄥ皢浼氬湪鏈湴淇濈暀錛屽茍鍦ㄦ瘡嬈℃墽琛宎ll.bash鐨勬椂鍊欓噸澶嶄嬌鐢紙涓嶇敤閲嶆柊緙栬瘧錛夈?<p><strong>鏇夸唬閫夋嫨</strong>榪樻湁涓浜涙瘮杈冩槑鏄劇殑鏇夸唬鏂規錛岄渶瑕佹垜浠鏄庝竴涓嬩負浠涔堟斁寮冧簡榪欎簺閫夋嫨銆?<p>浠庝竴寮濮嬪啓涓涓紪璇戝櫒銆傜幇鍦ㄧ殑緙栬瘧鍣ㄦ湁涓涓潪甯擱噸瑕佺殑鐗瑰緛錛氫粬浠兘澶熸甯稿伐浣滐紙鎴栬呭叾鑷沖皯鑳藉婊¤凍鎵鏈夌敤鎴風殑瑕佹眰錛夈傚敖綆o璇█姣旇緝綆鍗曪紝浣嗘槸緙栬瘧鍣ㄤ腑鏈夊緢澶氱粏寰殑緇嗚妭浼樺寲鍜屾敼鍐欙紝鐩存帴涓㈠純10鎴栨暟騫寸殑鍦ㄨ繖涓婇潰鐨勫姫鍔涙槸姣旇緝鎰氳牏鐨勩?<p>瀵圭紪璇戝櫒榪涜浜哄伐緲昏瘧銆傛垜浠凡緇忎互浜哄伐鐨勬柟寮忕炕璇戜簡涓灝忛儴鍒咰/C++浠g爜鍒癎o璇█浜嗐傝繖涓繃紼嬫槸鏋嚗鑰屼笖鏄撻敊鐨勶紝涓旇繖浜涢敊璇潪甯哥殑緇嗗井鍙婇毦浠ュ彂鐜般傜浉鍙嶏紝浣跨敤鏈烘緲昏瘧浼氬艦鎴愪竴浜涙瘮杈冧竴鑷寸殑閿欒錛岃岃繖浜涢敊璇槸鏄撲簬鍙戠幇鐨勶紱鑰屼笖涓嶄細鍥犱負鏋嚗鐨勮繃紼嬪紑灝忓樊銆侴o緙栬瘧鍣ㄧ殑浠g爜鏄庢樉鐨勬瘮鎴戜滑緲昏瘧鐨勪唬鐮佸寰堝錛氳秴榪?0,000琛孋浠g爜錛屾満姊扮炕璇戜細浣胯繖涓繃紼嬪鏄撲竴浜涖傚氨鍍廌ick Sites鍦?974騫磋鐨勪竴鏍鳳細鈥滅浉姣斿啓紼嬪簭錛屾垜瀹佹効鍐欎竴涓▼搴忔潵甯垜鍐欑▼搴忋傗?浣跨敤鏈烘鏉ョ炕璇戠紪璇戝櫒涔熸柟渚夸簬鍦ㄥ噯澶囧ソ鍒囨崲涔嬪墠錛屾垜浠彲浠ョ戶緇紑鍙戝畬鍠勭幇鏈夌殑C紼嬪簭銆?<p>鍙炕璇戝悗绔茍閾炬帴鍒癵o/parser鍜実o/types.浠庡墠绔紶緇欏悗绔殑鏁版嵁緇撴瀯鎵鍖呭惈鐨勪俊鎭腑錛実o/parser鍜実o/types鎵鑳芥彁渚涚殑闄や簡API灝辨病鍏朵粬鐨勪笢瑗夸簡銆傚鏋滀嬌鐢ㄨ繖浜涘簱鏉ユ浛浠e墠绔紝闇瑕佸啓浠g爜鏉ヨ漿鎹o/parser鍜実o/types鎵鑳芥彁渚涙暟鎹粨鏋勫埌鍚庣錛岃繖鏄竴涓潪甯稿娉涗笖鏄撳嚭閿欑殑宸ヤ綔銆傛垜浠浉淇′嬌鐢ㄨ繖浜涘簱鏄湁鎰忎箟鐨勶紝浣嗘洿鏄庢櫤鐨勬槸錛岀瓑鍒板皢緙栬瘧鍣ㄤ唬鐮佽皟鏁寸殑鏇村儚Go紼嬪簭錛屽垎鎴愮‘瀹氳竟鐣岀殑銆佸寘鍚鏄庢枃。鍜屽崟鍏儖箣璇曞瓙鍖呬箣鍚庡啀鋴社敤銆?<p>鏀懼純鐜版湁鐨勭紪璇戝櫒錛屼嬌鐢╣ccgo錛堟垨鑰単o/parser + go/types + LLVM, 鈥︼級銆傜幇鏈夌殑緙栬瘧鍣ㄦ槸Go璇█鏄懼緱姣旇緝鐏墊椿鐨勪竴涓噸瑕佺粍鎴愰儴鍒嗐傚鏋滃皾璇曚嬌鐢ㄥ熀浜庡ぇ閲忎唬鐮佺殑GCC鎴朙LVM鏉ュ紑鍙慓o紼嬪簭錛屾劅瑙変細鏈夌鍒癎o璇█鐨勭伒媧繪с傚彟澶栵紝GCC鏄ぇ閲廋浠g爜錛堢幇鍦ㄦ湁閮ㄥ垎C++錛夈丩LVM鏄ぇ閲廋++浠g爜鐨勭▼搴忋備互涓婂垪涓劇殑銆佺敤浜庤В閲婁笉浣跨敤鐜版湁緙栬瘧妗嗘灦浠g爜鐨勫嚑涓師鍥狅紝涔熼兘閫傜敤浜庢洿澶氱殑綾諱技鐨勪唬鐮佸簱銆?<h5>C璇█鐨勯暱鏈熶嬌鐢?/h5> <p>涓磋繎緇撴潫錛岃繖涓鍒掕繕鐣欎笅浜嗙敱C鍐欐垚鐨凱lan9鐨勫伐鍏烽摼鐨勪竴閮ㄥ垎銆傚湪闀挎湡鍙戝睍涓紝榪樻槸灝嗘墍鏈夌殑C浠庝唬鐮佹爲鎺掗櫎鎺夋瘮杈冨ソ銆傛湰绔犺妭鎺ㄦ祴浜嗕竴涓嬭繖浠朵簨灝嗕細濡備綍鍙戠敓錛屼絾涓嶄繚璇佸叾鎸囧畾浼氬彂鐢熸垨鑰呮寜鐓ц繖縐嶅璺彂鐢熴?<p>榪愯鏃跺寘(runtime)銆?runtime鍖呯殑澶ч儴鍒嗛兘鏄敤C鍐欐垚錛屽熀浜庝竴浜涘悓鏍風殑鍘熷洜錛孏o緙栬瘧鍣ㄤ篃鏄敤C瀹炵幇銆備絾鏄紝runtime鍖呰繙姣旂紪璇戝櫒鐨勪唬鐮侀噺瑕佸皬錛屼笖瀹冪幇鍦ㄥ凡緇忔槸鐢℅o鍜孋娣峰悎緙栧啓銆傚皢C浠g爜杞崲涓篏o浠g爜鏃訛紝涓嬈¤漿鍖栦竴閮ㄥ垎璨屼技涔熸槸鍙鐨勩傚叾涓紝涓昏閮ㄥ垎鏈夛細璋冨害鍣紙scheduler錛夛紝鍨冨溇鍥炴敹錛坱he garbage collector錛夛紝鏁e垪鏄犲皠琛紙hash map錛夌殑瀹炵幇錛屽拰channel鐨勫疄鐜般傦紙榪欓噷Go鍜孋浠g爜娣峰悎鐨勫緢铻嶆唇錛屾槸鍥犱負榪欓噷浣跨敤鐨?c鑰屼笉鏄痝cc鏉ョ紪璇戠殑C浠g爜銆傦級 <p>C緙栬瘧鍣ㄣ?Plan 9鐨凜緙栬瘧鍣ㄦ湰韜氨鏄敤C鍐欐垚錛屽鏋滄垜浠浠嶨o鍖呭疄鐜伴噷闈㈢Щ闄ゆ墍鏈夌殑C浠g爜錛岄偅涔堟垜浠皢縐婚櫎榪欎簺緙栬瘧宸ュ叿錛氣済o tool 6c鈥濈瓑絳夛紝鍙﹀錛?c鐨勬枃浠朵篃灝嗕笉琚敮鎸佸嚭鐜扮殑Go鍖呯殑鐩綍閲岄潰銆傛垜浠簲璇ユ彁鍓嶅0鏄庤繖鏍風殑璁″垝錛屼互渚夸嬌鐢–鐨勭涓夋柟鍖呮湁鏃墮棿鍘葷Щ闄よ繖綾籆浠g爜鐨勪嬌鐢ㄣ傦紙Cgo錛岀敱浜庝嬌鐢ㄤ簡gcc鏉ユ浛浠?c錛屾墍浠ュ畠浠嶇劧鍙互浣滀負涓涓斿緞鏉ュ湪Go鍖呬腑浣跨敤C瀹炵幇閮ㄥ垎鍔熻兘銆傦級鍦℅o1鐨勫吋瀹規ф枃妗d腑娌℃湁鍖呭惈宸ュ叿閾句慨鏀圭殑鎻忚堪錛屼篃灝辨槸璇村幓鎺塁緙栬瘧鍣ㄦ槸琚厑璁哥殑銆?<p>姹囩紪鍣ㄣ?Plan 9鐨勬眹緙栧櫒涔熸槸鐢–瀹炵幇鐨勶紝浣嗚繖涓眹緙栧櫒鍙笉榪囨槸涓緋誨垪瑙f瀽鏍戠粍鎴愮殑綆鍗曡В鏋愬櫒錛岃繖浣垮緱涓嶈鎵嬪姩榪樻槸鑷姩灝嗗畠緲昏瘧鎴怗o璇█閮芥瘮杈冪畝鍗曘?<p>榪炴帴鍣ㄣ?Plan 9鐨勮繛鎺ュ櫒涔熸槸鐢盋鍐欐垚銆傛渶榪戠殑涓浜涘伐浣滐紝宸茬粡灝嗗ぇ閮ㄥ垎鐨勮繛鎺ュ櫒宸ヤ綔鏀懼埌鐨勭紪璇戝櫒涓紝鑰屼笖錛屼篃宸茬粡鏈変釜璁″垝灝嗗墿浣欑殑閮ㄥ垎閲嶅啓鎴愪竴涓柊鐨勩佹洿綆鍗曠殑Go紼嬪簭銆傝漿縐誨埌緙栬瘧鍣ㄧ殑閮ㄥ垎榪炴帴鍣ㄤ唬鐮侊紝鐜板湪闇瑕侀殢鐫緙栬瘧鍣ㄧ殑鍘熸湁浠g爜涓璧瘋繘琛岀炕璇戙?<p>鍩轟簬Libmach鐨勫伐鍏? nm, pack, addr2line, 鍜宱bjdump銆?Nm鐜板湪宸茬粡浣跨敤Go璇█閲嶅啓銆侾ack鍜宎ddr2line鍙互浠諱綍涓澶╄閲嶅啓銆侽bjdump鐜板湪渚濊禆浜巐ibmach鐨勫弽姹囩紪鍣紝浣嗚繖浜涜漿鎹負Go涔熸槸姣旇緝綆鍗曠殑錛屼笉璁烘槸浣跨敤鏈烘榪樻槸浜哄伐緲昏瘧銆傛墍浠ュ熀浜庤繖鍑犵偣錛宭ibmach鏈韓灝嗘潵涔熷彲浠ヨ縐婚櫎銆?<p>  <p>鏉ユ簮: <a >http://www.oschina.net/translate/go-1-3-compiler-overhaul</a> <p>鑻辨枃鏉ユ簮:<a title="https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8/preview?sle=true&pli=1" >https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8/preview?sle=true&pli=1</a></p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/205525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2014-01-22 12:23 <a href="http://www.shnenglu.com/sunicdavy/archive/2014/01/22/205525.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>go璇█寮鍙戠幆澧僉iteIDE鑷姩瀹屾垚鍔熻兘澶辨晥瑙e喅鏂規硶http://www.shnenglu.com/sunicdavy/archive/2014/01/03/205147.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Fri, 03 Jan 2014 11:10:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2014/01/03/205147.htmlhttp://www.shnenglu.com/sunicdavy/comments/205147.htmlhttp://www.shnenglu.com/sunicdavy/archive/2014/01/03/205147.html#Feedback2http://www.shnenglu.com/sunicdavy/comments/commentRss/205147.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/205147.html姣旇緝榪嘗iteIDE鍜宔clipse+goclipse, 鏈鍚庤繕鏄寰桳iteIDE綆媧?浣嗗彂鐜板叾鑷姩瀹屾垚鍔熻兘鍋跺皵浼氬嚭鐜? 闅忓嵆鎼滅儲, 鍙戠幇鍏朵嬌鐢╣ocode鐨勪竴涓紑婧愰」鐩紑浜嗕竴涓畝鍗曟湇鍔? 涓哄悇縐岻DE鎻愪緵楂橀熺殑鑷姩瀹屾垚鏈嶅姟.鍦╣oclipse鐜鍙戠幇鍏舵姤浜嗙増鏈笉鍖歸厤鐨勯敊, 鑰屾渶榪慻o鐨勬洿鏂頒篃鏄緢棰戠箒, 鎵浠ヨ寰楀簲璇ユ槸gocode鐗堟湰榪囪侀犳垚.

鎼滅儲鍒癵ocode鐨勫紑鍙戦〉闈?a >https://github.com/nsf/gocode  緇撴灉鍙戠幇nsf榪欏浼欏眳鐒朵篃鏄痩uaBridge鐨勪綔鑰?

涓嬭澆鏈鏂扮殑gocode浠g爜, 瑙e帇鍚? 緙栬瘧:

windows涓嬪懡浠よ

go build gocode.go autocompletecontext.go autocompletefile.go client.go config.go cursorcontext.go decl.go declcache.go formatters.go os_windows.go package.go ripper.go rpc.go scope.go server.go utils.go

linux涓? 鍙渶瑕佸皢os_windows.go鎹負os_posix.go鍗沖彲

緙栬瘧瀹屾垚鍚? 灝嗗彲鎵ц鏂囦歡gocode瑕嗙洊鍒發iteIDE涓嬬殑鍚屽悕鏂囦歡, 鏉鎺塯ocode榪涚▼鍚庨噸鍚痩iteIDE鍗沖彲

image



]]>
luabind 0.9.1鍦╞oost 1.49+鍜実cc-4.6.3浠ヤ笂鐗堟湰鐨勭紪璇戦棶棰樺鐞?/title><link>http://www.shnenglu.com/sunicdavy/archive/2013/09/24/203409.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Tue, 24 Sep 2013 08:46:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2013/09/24/203409.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/203409.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2013/09/24/203409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/203409.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/203409.html</trackback:ping><description><![CDATA[<p>灝哹oost鏇存柊鍒?.53鏃? 鍙戠幇luabind姝繪椿緙栬瘧涓嶈繃, 鎶ラ敊濡備笅</p> <p>error: missing binary operator before token "("</p> <p>鏍規嵁鑰佸鐨勬弿榪? boost涓殑BOOST_PP_ITERATION_FLAGS浠?.49鐗堟湰鍚庡彂鐢熶簡涓浜涘彉鍖?</p> <p>鍦╣it鎵懼埌涓涓猵atch, 閾炬帴<a >鍦ㄦ</a></p> <p>浠ヤ笅綆鍗曟弿榪?/p> <p>淇敼call_function.hpp, call_member.hpp鍙妛rapper_base.hpp</p> <p>鍘繪帀#elif BOOST_PP_ITERATION_FLAGS() == 1</p> <p>鏇存崲涓?/p> <p>#else</p> <p>#if BOOST_PP_ITERATION_FLAGS() == 1</p><pre><p>鐒跺悗鍦ㄦ簮鐮佸簳閮ㄥ姞涓涓?endif鍗沖彲</p></pre><img src ="http://www.shnenglu.com/sunicdavy/aggbug/203409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2013-09-24 16:46 <a href="http://www.shnenglu.com/sunicdavy/archive/2013/09/24/203409.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎹曡幏Linux孌甸敊璇?Segment fault)騫朵笖鎵撳嵃閿欒鍫嗘爤http://www.shnenglu.com/sunicdavy/archive/2012/12/29/196809.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Sat, 29 Dec 2012 09:53:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/12/29/196809.htmlhttp://www.shnenglu.com/sunicdavy/comments/196809.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/12/29/196809.html#Feedback3http://www.shnenglu.com/sunicdavy/comments/commentRss/196809.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/196809.htmlLinux涓婅窇鏈嶅姟鍣ㄥ鏋滈亣鍒扮▼搴忓穿婧冩槸涓浠跺緢鑻︽伡鐨勪簨鎯? 鍐嶇鍒伴噸鐜板緢闅劇殑BUG, 浼拌鍙兘閫氳繃浼犵粺鐨勬帓鏌ユ柟娉曡繘琛?

鍦ㄧ紪鍐欐湰鏂囧墠, 絎旇呬嬌鐢ㄨ繃璇稿libunwind絳夊簱榪涜閿欒鏃跺爢鏍堟墦鍗? 浣嗘槸鍏舵湰韜敱浜庨渶瑕佸紩鐢ㄧ涓夋柟搴? 浣跨敤榪樻槸紼嶅井楹葷儲.

緇忚繃Google鍚? 灞呯劧鎵懼埌涓綃?a >濂芥枃, 鍏墮氳繃鎹曡幏SIGSEGV淇″彿, 騫惰揩浣跨▼搴忚繘鍏db璋冭瘯闃舵, 鍒╃敤gdb寮哄ぇ鐨勮皟璇曞姛鑳藉彲浠ヨ繘琛屽悇縐嶉敊璇窡韙? 姝ゆ硶宸蹭笌Windows涓嬬▼搴忓穿婧冨悗寮瑰嚭VC璋冭瘯鍑犱箮鎺ヨ繎.

鎴戝湪姝ゆ枃鍩虹涓? 鎵╁睍浜嗗叾閫氱敤鎬у強渚垮埄鎬?/p>

1. 浣跨敤gdb鐨?-ex鍙傛暟, 鍦ㄦ寕鎺ョ▼搴忓悗, 鎵цbt鎸囦護鎵撳嚭紼嬪簭鍫嗘爤

2. 灝嗕俊鎭噸瀹氬悜鍒拌嚜瀹氫箟鐨勬枃浠?鍦ㄥ榪涚▼閮介渶瑕佽繘琛屽悗鍙拌緭鍑烘椂甯︽潵鏇村ぇ鐨勭伒媧繪? 鍚屾椂涔熻В鍐充簡gdb鍙兘鍦ㄥ墠鍙拌皟璇曠殑闂

浠g爜濡備笅

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>

void dump(int signo)
{
        char buf[1024];
        char cmd[1024];
        FILE *fh;

        snprintf(buf, sizeof(buf), "/proc/%d/cmdline", getpid());
        if(!(fh = fopen(buf, "r")))
                exit(0);
        if(!fgets(buf, sizeof(buf), fh))
                exit(0);
        fclose(fh);
        if(buf[strlen(buf) - 1] == '/n')
                buf[strlen(buf) - 1] = '/0';
        snprintf(cmd, sizeof(cmd), "gdb %s %d -ex=bt > ./a.txt", buf, getpid());
        system(cmd);

        exit(0);
}

鍦ㄦ湇鍔″櫒寮鍚椂,娣誨姞 signal(SIGSEGV, &dump ); 榪涜淇″彿澶勭悊鎸傛帴鍗沖彲

 

 

寮曠敤: http://blog.csdn.net/kakaka2011/article/details/6597857  浣滆? kakaka2011



]]>
鎭間漢鐨刡oost::asio::async_read_untilhttp://www.shnenglu.com/sunicdavy/archive/2012/12/03/195921.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Mon, 03 Dec 2012 07:12:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/12/03/195921.htmlhttp://www.shnenglu.com/sunicdavy/comments/195921.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/12/03/195921.html#Feedback5http://www.shnenglu.com/sunicdavy/comments/commentRss/195921.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/195921.html鏈榪戜負鏈嶅姟鍣ㄦ坊鍔燲MLSocket涓嶧lash榪涜閫氫俊, 榪欑鍗忚鍏跺疄鏄竴縐嶄互\0緇撳熬鐨勫瓧絎︿覆鍗忚, 涓轟簡璁゛sio鍏煎姝ゅ崗璁? 鎴戜粠鏂囨。鎵懼埌浜哸sync_read_until寮傛璇誨彇緋誨垪, 榪欎釜鍑芥暟鐨勫師鐞嗘椂, 緇欏畾涓涓猻treambuf, 鍜屼竴涓垎闅旂, asio紕板埌鍒嗛殧絎︽椂榪斿洖, 浣犲彲浠ヤ粠streambuf涓鍙栭渶瑕佺殑鏁版嵁. 鐪嬩技寰堢畝鍗? 鎴戝緢蹇啓濂戒竴涓猟emo涓嶧lash榪涜閫氫俊, 緇撴灉鍙戠幇鍦ㄤ竴涓猠cho閫昏緫閫熷害寰堝揩鏃? 鏈嶅姟鍣ㄥ眳鐒朵貢鍖呬簡, 緗戜笂鏌ヤ簡涓? 瀹樻柟鍘熸枃鏄繖鏍風殑:

鈥滱fter a successful async_read_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent async_read_until operation to examine.鈥?/p>

鎰忔濇槸, streambuf涓茍涓嶄竴瀹氭槸鍒板垎闅旂鍓嶇殑鎵鏈夋暟鎹? 澶氫綑鐨勬暟鎹彲鑳戒竴鏍蜂細鍦╯treambuf涓? 涔熷氨鏄, 榪橀渶瑕佽嚜宸卞啀嬈″鐞嗕竴閬嶆暟鎹?..

鍔ㄦ墜鍛? async_read_until鐪嬩技灝辨槸涓涓簾鏌? 搴曞眰宸茬粡璐逛簡寰堝CPU鍦ㄩ愬瓧絎︿笌鍒嗛殧絎︾殑鍖歸厤涓? 鎶涗笂鏉ョ殑鏁版嵁灞呯劧榪樻槸鍗婃垚鍝?

浠g爜濡備笅, 嫻嬭瘯閫氳繃, 浣嗘槸瀹炲湪寰堣垂瑙d負鍟ラ潪瑕佸啀鍋氫竴嬈?.

          boost::asio::streambuf* SB = SBP.get();

            // 璁塊棶緙撳啿
            const char* Buffs = boost::asio::buffer_cast<const char*>( SB->data() );

            uint32 DataSize = 0;
            for ( uint32 i = 0; i < SB->size(); ++i )
            {
                const char DChar = Buffs[i];

                // 榪欓噷闇瑕佽嚜宸卞垽鏂瓧絎︿覆鍐呭, read_until鐨勬枃。閲寴q欎箞璇寸殑
                if ( DChar == '\0' )
                {
                    DataSize = i;
                    break;
                }
            }

            if ( DataSize > 0 )
            {
                // 鍙栨垚瀛楃涓?/span>
                std::string FullText( Buffs, DataSize );
                
                // 娑堣垂
                SB->consume( DataSize );                

                mWorkService->post(
                    boost::bind(&AsioSession::NotifyReadString,
                    shared_from_this(),
                    FullText )
                    );

            }
  鍙﹀, 涓轟簡淇濊瘉杈撳叆鎬у畨鍏? 鍙互鍦╯treambuf鏋勯犳椂鍔犱竴涓渶澶т竴涓鍙栭噺, 瓚呰繃姝ら噺浼氳繑鍥炴姤閿? 閬垮厤浜嗙紦鍐插尯琚拺鐖嗙殑鍗遍櫓


]]>
MySQL++鎿嶄綔MySQL涓犳垚Commands out of sync鐨?014閿欒鍒嗘瀽http://www.shnenglu.com/sunicdavy/archive/2012/06/13/178678.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 13 Jun 2012 09:57:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/06/13/178678.htmlhttp://www.shnenglu.com/sunicdavy/comments/178678.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/06/13/178678.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/178678.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/178678.htmlMySQL++鍦∕ySQL鍘熷C鎺ュ彛涓婂仛浜嗕竴浜涘皝瑁? 緇欐搷浣滃甫鏉ュ緢澶т究鍒?

鏈榪戦亣鍒癉B鏈嶅姟鍣ㄤ腑鎶ュ嚭涓涓狹ySQL鐨勯敊璇?Commands out of sync; you can't run this command now,2014

鏌ラ槄寰堝浠g爜, 瑙e喅鏂規硶閮芥槸浣跨敤C鎺ュ彛鐨勬柟寮? 妯′豢鍏惰В鍐蟲柟娉?鍦∕ySQL++涓壘鍒頒簡姣旇緝濂界殑瑙e喅鏂規:

鏂規A: 娓呯┖姣忔鏈嬌鐢ㄧ殑璁板綍

for (int i = 1; DataQuery.more_results(); ++i)
{
   DataQuery.store_next();                
}

鍏朵腑 DataQuery綾誨瀷涓簃ysqlpp::Query

 

鏂規B: 瀵逛簬瀛樺偍榪囩▼涓?浣跨敤浜嗗涓猻elect璇彞榪斿洖鍚屾牱鐨勫垪緇撴灉, 灝遍渶瑕佷嬌鐢ㄤ互涓嬭鍙?/p>

static void print_multiple_results(Query& query)
{
    // 鎵ц鏌ヨ騫惰緭鍑虹粨鏋滆〃
 StoreQueryResult res = query.store();
 print_result(res, 0);
 for (int i = 1; query.more_results(); ++i) {
  res = query.store_next();
  print_result(res, i);
 }
}
 
鍙傝冩枃绔?http://hi.baidu.com/freeknight/item/ea9fd88e7d291f854514cf43


]]>
鍩轟簬HG鐗堟湰綆$悊杞歡鐨勬湇鍔″櫒/瀹㈡埛绔暟鎹増鏈彂甯冩祦紼?/title><link>http://www.shnenglu.com/sunicdavy/archive/2012/04/26/172798.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Thu, 26 Apr 2012 03:11:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2012/04/26/172798.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/172798.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2012/04/26/172798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/172798.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/172798.html</trackback:ping><description><![CDATA[<h1><font face="Lucida Console">浼犵粺鍙戝竷鐜扮姸</font></h1> <p><font face="Lucida Console">浼犵粺鐨勬湇鍔″櫒/瀹㈡埛绔増鏈彂甯冩祦紼嬮兘闇瑕佺粡鍘嗕互涓嬫祦紼?</font></p> <p><font face="Lucida Console">1. 鑾峰彇浠g爜</font></p> <p><font face="Lucida Console">2. 緙栬瘧浠g爜</font></p> <p><font face="Lucida Console">3. 灝嗛厤緗?浜岃繘鍒舵枃浠? 璧勬簮鎵撳寘</font></p> <p><font face="Lucida Console">4. 鎸傛帴榪滅▼鏈嶅姟鍣ㄧ鐩樻嫹璐濇墦鍖呮枃浠?/font></p> <p><font face="Lucida Console">5. 榪滅▼鎿嶄綔瑙e帇鎵撳寘鏂囦歡</font></p> <p><font face="Lucida Console">6. 淇敼璁劇疆,鎸囧悜鏈鏂扮増鏈?/font></p> <p><font face="Lucida Console">7. 閲嶅惎鏈嶅姟鍣?/font></p> <p><font face="Lucida Console">姝ゆ祦紼嬬箒鐞?閲嶅涓旀棤鑱? 鍚屾椂, 鐢變簬緗戠粶甯﹀,緗戦熺瓑綰︽潫, 姣忔鑻ヤ嬌鐢ㄥ畬鏁村寘鍙戝竷,浼犺緭璧鋒潵闈炲父鍚冨姏</font></p> <p><font face="Lucida Console">鏈枃璁ㄨ鐨勫緗戞湇鍔″櫒鐢變簬瀹夊叏鎬ц姹?紱佹root鐧誨綍,鍙兘鐢ㄦ櫘閫氬笎鍙風櫥褰曟垨浼犺緭鍚? 鎻愭潈涓簉oot緇х畫榪涜浠ヤ笂鎿嶄綔, 鍥犳rsync鐨勪嬌鐢ㄥ彈鍒頒弗閲嶉檺鍒?/font></p> <p><font face="Lucida Console">鍗充究浣跨敤Windows涓嬬殑鍚屾杞歡, 涔熷嚑涔庝笉鍙兘.</font></p> <h1><font face="Lucida Console">HG鐗規у強浼樺娍</font></h1> <p><font face="Lucida Console">HG浣滀負涓涓紭縐,灝忓閥鐨勮法騫沖彴浠g爜綆$悊杞歡鐨勭壒鎬?姝eソ鑳借В鍐充互涓婇棶棰? 涓昏鐗規?</font></p> <p><font face="Lucida Console">1. 瀹夎綆渚? 鍙互浣跨敤浠g爜鐩存帴瀹夎</font></p> <p><font face="Lucida Console">2. 鍒╃敤鏈湴鏄犲皠鐗堟湰鍙互瀵規柊鐗堟湰鍋氬樊寮傛瘮杈?/font></p> <p><font face="Lucida Console">3. 澧為噺鍖呬紶杈? 100%鍚屾, 鏈湴鏂囦歡鍒犻櫎鍚? 榪滅▼鏂囦歡涔熶細鍚屾鍒犻櫎</font></p> <p><font face="Lucida Console">4. 浼犺緭鍘嬬緝</font></p> <p><font face="Lucida Console">5. 澧為噺鍖呭彲浠ユ墦鍖呬負patch榪涜紱葷嚎鏇存柊</font></p> <p><font face="Lucida Console">6. 鍙互鎭㈠鍒頒換鎰忕増鏈? 鎻愪氦鐗堟湰鏈夋嵁鍙煡</font></p> <p><font face="Lucida Console"></font> </p> <p><strong><font face="Lucida Console">浠ヤ笅閮ㄧ講緋葷粺浠entOS涓哄熀紜, 鍏朵粬緋葷粺綾諱技</font></strong></p> <p><strong><font face="Lucida Console">鏈枃鏉ヨ嚜鎴橀瓊灝忕瓚鐨勫崥瀹?a href="http://www.shnenglu.com/sunicdavy">http://www.shnenglu.com/sunicdavy</a> 杞澆璇鋒敞鏄庢潵婧?/font></strong></p> <h1><font face="Lucida Console">涓鴻繙紼嬫湇鍔″櫒瀹夎HG </font></h1> <h2><font face="Lucida Console">瀹夎渚濊禆搴?/font></h2> <p><font face="Lucida Console">yum install python-devel</font> </p> <h2><font face="Lucida Console">鑾峰彇HG婧愮爜</font></h2> <p><font face="Lucida Console">wget </font><a ><font face="Lucida Console">http://mercurial.selenic.com/release/mercurial-2.1.tar.gz</font></a> </p> <p><font face="Lucida Console">tar zxvf ./mercurial-2.1.tar.gz</font> </p> <h2><font face="Lucida Console">緙栬瘧瀹夎</font></h2> <p><font face="Lucida Console">make all</font> </p> <p><font face="Lucida Console">make install</font> </p> <p><font face="Lucida Console">hg debuginstall</font> </p> <p><font face="Lucida Console"></font>  </p> <h1><font face="Lucida Console">浣跨敤HG鍚屾鏁版嵁</font></h1> <h2><font face="Lucida Console">鍒涘緩浠撳簱</font></h2> <p><font face="Lucida Console">鎵懼埌浣犻渶瑕佸悓姝ョ殑鐩綍,榪涘叆鐩綍</font></p> <p><font face="Lucida Console">鎵ц</font></p> <p><font face="Lucida Console">hg init</font></p> <p><font face="Lucida Console">vi .hg/hgrc</font></p> <p><font face="Lucida Console">娣誨姞浠ヤ笅鍐呭,璁╄繖涓粨搴撴敮鎸佸閮╬ush</font></p> <p><font face="Lucida Console">[ui]</font></p> <p><font face="Lucida Console">username=<font color="#ff0000">鏈嶅姟鍣ㄦ彁浜ゅ悗鐪嬪埌鐨勭敤鎴峰悕</font></font></p> <p><font face="Lucida Console">[web]<br /></font></p> <p><div>push_ssl = false</div><font face="Lucida Console">allow_push=*<br /></font></p> <h2><font face="Lucida Console">鍚屾</font></h2> <p><font face="Lucida Console">vi /etc/sysconfig/iptables</font></p> <p><font face="Lucida Console">娣誨姞HG鏈嶅姟鐨?000绔彛</font></p> <p><font face="Lucida Console">-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT</font></p> <p><font face="Lucida Console">寮鍚粨搴撳悓姝ユ湇鍔?/font></p> <p><font face="Lucida Console">hg serve</font></p> <p><font face="Lucida Console">鏈湴鏈哄櫒鍚屾牱鎵懼埌鏂囦歡澶?鍒涘緩浠撳簱</font></p> <p><font face="Lucida Console">hg init</font></p> <p><font face="Lucida Console">浠ュ悗姣忔闇瑕佸悓姝ユ椂,浣跨敤鍛戒護,鎴栬呬箤榫烪G鐨勭晫闈㈠伐鍏鋒媺鍙栨湇鍔″櫒鏁版嵁鍗沖彲</font></p> <p><font face="Lucida Console">hg pull http://鏈嶅姟鍣ㄥ湴鍧:8000</font></p> <p><font face="Lucida Console"></font> </p> <p><font face="Lucida Console">鐗堟湰鎻愪氦鏂規硶涓嶩G鏃ュ父浣跨敤綾諱技, 榪欓噷涓嶅啀闃愯堪</font></p> <h1><font face="Lucida Console">紱葷嚎鏇存柊</font></h1> <p>瀵逛簬鏌愪簺鏈嶅姟鍣ㄦ繁澶勯槻鐏鎴栬呭畨鍏ㄧ櫥褰曞悗鏂?涓嶈兘鐩存帴寮鍚?000绔彛鐨勬儏鍐?/p> <p>鍙互浣跨敤hg瀵煎嚭涓涓猵atch, 浼犺緭鍒拌繙紼嬫湇鍔″櫒, 浣跨敤hg import PATCH 鍗沖彲</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/172798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2012-04-26 11:11 <a href="http://www.shnenglu.com/sunicdavy/archive/2012/04/26/172798.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁〤/C++紼嬪簭涓嬈$紪璇戝彲浠ュ彂甯冨埌澶氱増鏈琇inux涔嬩笂http://www.shnenglu.com/sunicdavy/archive/2012/04/20/172108.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Fri, 20 Apr 2012 03:35:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/04/20/172108.htmlhttp://www.shnenglu.com/sunicdavy/comments/172108.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/04/20/172108.html#Feedback4http://www.shnenglu.com/sunicdavy/comments/commentRss/172108.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/172108.html鏈榪戦〉娓稿紑鏀懼鉤鍙版瘮杈冨, 姣忎釜騫沖彴瑕佹眰鐨凩inux鐗堟湰鍚勪笉鐩稿悓, 榪欑粰寮鍙戜漢鍛橀儴緗叉湇鍔″櫒甯︽潵浜嗗緢澶х殑鍥伴毦. 鍦ㄦ湰鏈篖inux緙栬瘧鐨勭▼搴?鍙戝竷鏃跺嵆渚垮皢渚濊禆鐨剆o闄勫甫鍒扮洰鏍嘗inux鐜,浠嶇劧浼氱鍒頒緷璧栧強鐗堟湰闂,渚嬪:

[root@localhost bin]# ldd wkcenter
./wkcenter: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./wkcenter)
./wkcenter: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./wkcenter)
./wkcenter: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./wkcenter)
./wkcenter: /lib/libc.so.6: version `GLIBC_2.9' not found (required by ./wkcenter)
./wkcenter: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./wkcenter)
./wkcenter: /lib/libc.so.6: version `GLIBC_2.8' not found (required by ./wkcenter)
./wkcenter: /lib/libc.so.6: version `GLIBC_2.11' not found (required by ./wkcenter)

        linux-gate.so.1 =>  (0xffffe000)
        liblog4cpp.so.4 => not found
        libprotobuf.so.7 => not found
        libboost_filesystem.so.1.48.0 => not found
        libboost_system.so.1.48.0 => not found
        libboost_thread.so.1.48.0 => not found
        libboost_program_options.so.1.48.0 => not found
        libunwind-x86.so.7 => not found
        libluabind.so.0.9.0 => not found
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x008ae000)
        libm.so.6 => /lib/libm.so.6 (0x0044b000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00476000)
        libc.so.6 => /lib/libc.so.6 (0x002c1000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0041d000)
        librt.so.1 => /lib/librt.so.1 (0x00440000)
        /lib/ld-linux.so.2 (0x002a2000)

涓婇潰綰㈠瓧閮ㄥ垎琛ㄧずglibc鍙奼libcxx搴撲緷璧栦笉姝g‘. 鏈漢浣跨敤鐨凩inux緙栬瘧鐗堟湰涓篗int 11(鍩轟簬Ubuntu), 涓鑸琔buntu鍙戣鐗堢殑glibc閰嶅闈炲父楂? 浣嗘槸涓婃枃涓殑鍙戝竷鐨凩inux鐗堟湰涓篊entOS 5.8

浣跨敤/lib/libc.so.6 鏌ョ湅libc鐗堟湰涓?.5, 榪滆繙浣庝簬寮鍙戠幆澧冪殑2.11

GNU C Library stable release version 2.5, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-51).
Compiled on a Linux 2.6.9 system on 2012-02-21.
Available extensions:
        The C stubs add-on version 2.1.2.
        crypt add-on version 2.1 by Michael Glad and others
        GNU Libidn by Simon Josefsson
        GNU libio by Per Bothner
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
        RT using linux kernel aio
Thread-local storage support included.
For bug reporting instructions, please see:
<
http://www.gnu.org/software/libc/bugs.html>.

鐢變簬Linux鎿嶄綔緋葷粺鐨勭壒鏈塭lf鍔犺澆欏哄簭. (鍙互鍙傝?a >姝ゆ枃). 铏界劧鍙互寰堝ぇ紼嬪害涓婅В鍐砏indows鏃╂湡鐗堟湰鐨刣ll hell闂, 浣嗘槸緇欓儴緗插甫鏉ヤ簡寰堝ぇ闅懼害

涓鑸父瑙佺殑瑙e喅鏂規硶鏄? 鎵懼埌涓涓笌鐩爣Linux鐗堟湰鍙奼libc鐗堟湰涓鑷寸殑Linux, 灝嗕唬鐮佸強渚濊禆鍖呮斁鍦ㄤ箣涓婄紪璇? 瀹屾垚鍚庡啀鍙戝竷.榪欑鏂規硶涓嶭inux涓嬪父瑙佽蔣浠跺畨瑁呮柟娉曠被浼? 浣嗘槸瀵逛簬鍟嗙敤鏈嶅姟鍣ㄩ儴緗叉楠ゆ潵璇存湭鍏嶇箒鐞? 瀹夊叏鎬т綆.

榪樻湁涓縐嶆柟娉?浣跨敤闈欐侀摼鎺? 灝嗘墍鏈夊彲鎵ц鏂囦歡鏂囦歡渚濊禆鐨勯潤鎬佸簱, 緋葷粺搴?鍏ㄩ儴闈欐侀摼鎺ュ埌鍙墽琛屾枃浠朵腑,鍙互涓嬈℃цВ鍐寵繖涓棶棰?/p>

姝ラ:

    1. 鍦╣cc閾炬帴鍛戒護琛屼腑娣誨姞-static -static-libgcc -static-libstdc++

    2. 灝嗙涓夋柟渚濊禆搴撴墦寮闈欐侀摼鎺ュ紑鍏? 灝嗗師鏉ラ摼鎺?so鐨勫簱,鍏ㄦ敼涓洪摼鎺?a

    3. gcc瀵歸摼鎺ュ簱欏哄簭寰堟晱鎰? 閾炬帴搴撻『搴忛渶瑕佹寜鐓т粠鍓嶈嚦鍚庝負:  欏圭洰浜х敓鐨勯潤鎬佸簱 > 絎笁鏂瑰簱闈欐佸簱 > 緋葷粺闈欐佸簱

    4. 閾炬帴鏃? 鑻ユ湁鏈В鍐崇殑symbol, 鍙互灝濊瘯鍦ㄦ渶鍚庢坊鍔?lpthread鍙?lrt瑙e喅

   

鍦ㄥ彂甯冪増鏈琇inux涓婅繍琛屽彲鑳介亣鍒扮殑闂:

terminate called after throwing an instance of 'std::runtime_error'

what(): locale::facet::_S_create_c_locale name not valid

瑙e喅鏂規硶: 鎵ц涔嬪墠榪愯export LC_ALL="C"



]]>
Linux鏈嶅姟鑷姩瀹夎鍗歌澆閮ㄧ講鑴氭湰http://www.shnenglu.com/sunicdavy/archive/2012/04/12/171026.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 12 Apr 2012 01:33:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/04/12/171026.htmlhttp://www.shnenglu.com/sunicdavy/comments/171026.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/04/12/171026.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/171026.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/171026.html#!/bin/bash # chkconfig: 3 3 1 # description: svclauncher
ServicePath=/usr/local/bin

ServiceList=(
"wkcenterd --toc /home/davy/dev/kaze/Config/CenterService.toc --logfile /tmp/centerd.log"
"wkagentd --toc /home/davy/dev/kaze/Config/AgentService.toc --logfile /tmp/agentd.log"
)

StartAll()
{
    for((i = 0;i<${#ServiceList[*]};i=i+1))
    do

     echo "start:" $ServicePath/${ServiceList[i]}
     $ServicePath/${ServiceList[i]} > /dev/null &

    done
}

StopAll()
{
    for((i = 0;i<${#ServiceList[*]};i=i+1))
    do

     echo "stop:" $ServicePath/${ServiceList[i]}
     svcname=`echo ${ServiceList[i]} | awk '{print $1}'`
     killall $svcname > /dev/null

    done
}

RestartAll()
{
    StopAll
    StartAll
}


InstallService()
{
    svcname=`basename $0`
    chmod +x $svcname
    cp $svcname /etc/init.d
    ln /etc/init.d/$svcname /etc/rc3.d/S03$svcname
    ln /etc/init.d/$svcname /etc/rc0.d/K03$svcname
    chkconfig --add $svcname
    chkconfig $svcname on
    chkconfig --list | grep $svcname
}

UninstallService()
{
    svcname=`basename $0`
    chkconfig --del $svcname
    rm -f /etc/init.d/$svcname
    rm -f /etc/rc3.d/S03$svcname
    rm -f /etc/rc3.d/K03$svcname
}



case "$1" in
    start)
    StartAll
    ;;
    stop)
    StopAll
    ;;
    restart)
    RestartAll
    ;;
    install)
    InstallService
    ;;
    uninstall)
    UninstallService
    ;;
    *)
           echo "Usage: service $EXEC {install|start|stop|restart|uninst}"
       exit 1
esac
 
exit $? 



]]>
Linux涓嬪皢ldd鎵撳嵃鐨勪緷璧栧垪琛ㄦ嫹璐濆埌鎸囧畾鐩綍http://www.shnenglu.com/sunicdavy/archive/2012/02/29/166791.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 29 Feb 2012 08:05:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/02/29/166791.htmlhttp://www.shnenglu.com/sunicdavy/comments/166791.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/02/29/166791.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/166791.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/166791.htmlLinux涓嬬殑ldd鍛戒護鍙互鏌ョ湅涓涓彲鎵ц鏂囦歡/鍏變韓搴?闈欐佸簱鐨勪緷璧? 浣嗘槸鎯沖緱鍒拌繖浜涗緷璧栨枃浠? 蹇呴』鎵嬪姩鍘繪壘,闈炲父楹葷儲

榪欓噷鏄竴涓猄hell鍙互灝嗕緷璧栧垪琛ㄤ腑鐨勬枃浠舵嫹璐濆埌鎸囧畾鐩綍

deplist=$( ldd $1 | awk '{if (match($3,"/")){ print $3}}' )
cp $deplist $2
浠g爜瑙i噴: ldd瀵煎嚭鍒楄〃, 榪欎釜鍒楄〃鎵撳嵃鍑烘潵寰堜笐

linux-gate.so.1 =>  (0x00ed2000)
    liblog4cpp.so.4 => /usr/local/lib/liblog4cpp.so.4 (0x00657000)
    libprotobuf.so.7 => /usr/local/lib/libprotobuf.so.7 (0x00360000)
    libboost_filesystem.so.1.48.0 => /usr/local/lib/libboost_filesystem.so.1.48.0 (0x00a9a000)
    libboost_program_options.so.1.48.0 => /usr/local/lib/libboost_program_options.so.1.48.0 (0x00110000)
    libboost_system.so.1.48.0 => /usr/local/lib/libboost_system.so.1.48.0 (0x00a85000)
    libboost_thread.so.1.48.0 => /usr/local/lib/libboost_thread.so.1.48.0 (0x00179000)
    libunwind-x86.so.7 => /usr/lib/libunwind-x86.so.7 (0x00821000)
    libluabindd.so.0.9.0 => /usr/local/lib/libluabindd.so.0.9.0 (0x00bb3000)
    libmysqlpp.so.3 => /usr/local/lib/libmysqlpp.so.3 (0x00de5000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0x001a9000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0x00782000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0x00aea000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00447000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x00abd000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0x00193000)
    libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0x00294000)
    libunwind.so.7 => /usr/lib/libunwind.so.7 (0x002ab000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x00e8a000)
    libmysqlclient_r.so.16 => /usr/lib/libmysqlclient_r.so.16 (0x0083b000)
    /lib/ld-linux.so.2 (0x00608000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0x002c0000)

 

鎴戜滑鍙戠幇絎竴琛岀殑so娌℃湁瀵瑰簲鐨勫簱鍦板潃, 鍥犳鎴戜滑浣跨敤awk鐨勮剼鏈姛鑳?鍒ゆ柇絎笁涓弬鏁?涔熷氨鏄?>涔嬪悗鐨勮礬寰勫繀欏誨寘鍚?

涔嬪悗灝嗙涓琛岀殑杈撳嚭閲嶅畾鍚戝埌鍙橀噺涓? 鍐嶄嬌鐢╟p鎸囦護浠庡垪琛ㄦ嫹璐濆埌鎸囧畾鐩綍



]]>
Linux鏈嶅姟鍣ㄥ畧鎶よ繘紼?鑷姩鍚姩+鏈嶅姟閰嶇疆絎旇http://www.shnenglu.com/sunicdavy/archive/2012/02/28/166680.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Tue, 28 Feb 2012 02:52:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/02/28/166680.htmlhttp://www.shnenglu.com/sunicdavy/comments/166680.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/02/28/166680.html#Feedback4http://www.shnenglu.com/sunicdavy/comments/commentRss/166680.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/166680.html1.1 涓鴻繘紼嬫坊鍔犲畧鎶よ繘紼?/h4>

鍙傝冮摼鎺?a >http://yubosun.akcms.com/tech/linux-daemon-program.htm

   1:  #include <unistd.h> 
   2:  #include <signal.h> 
   3:  #include <sys/types.h> 
   4:  #include <sys/stat.h> 
   5:  #include <stdio.h> 
   6:  #include <stdlib.h>
   7:   
   8:  #ifndef NOFILE 
   9:  #define NOFILE 3 
  10:  #endif
  11:   
  12:  void init_daemon() 
  13:  { 
  14:          int pid; 
  15:          int i; 
  16:          if(pid = fork()) exit(0); //鐖惰繘紼嬶紝閫鍑?
  17:   
  18:          else if(pid < 0) exit(1); //fork澶辮觸 
  19:   
  20:          /* 瀛愯繘紼嬬戶緇墽琛?*/ 
  21:          setsid(); //鍒涘緩鏂扮殑浼氳瘽緇勶紝瀛愯繘紼嬫垚涓虹粍闀匡紝騫朵笌鎺у埗緇堢鍒嗙 
  22:   
  23:          /* 闃叉瀛愯繘紼嬶紙緇勯暱錛夎幏鍙栨帶鍒剁粓绔?*/ 
  24:          if(pid = fork()) exit(0); //鐖惰繘紼嬶紝閫鍑?
  25:   
  26:          else if(pid < 0) exit(1); //fork閿欒錛岄鍑?
  27:   
  28:          /* 絎簩瀛愯繘紼嬬戶緇墽琛?, 絎簩瀛愯繘紼嬩笉鍐嶆槸浼氫細璇濈粍緇勯暱*/ 
  29:   
  30:          //for(i = 0; i < NOFILE; i++) /* 鍏抽棴鎵撳紑鐨勬枃浠舵弿榪扮*/ 
  31:          //{ 
  32:          //close(i); 
  33:          //} 
  34:          chdir("/tmp"); /* 鍒囨崲宸ヤ綔鐩綍 */ 
  35:          umask(0); /* 閲嶈鏂囦歡鍒涘緩鎺╃爜 */ 
  36:          return; 
  37:  }
  38:   
  39:  int main(int argc, char* argv[])
  40:  {    
  41:      FILE *fp; 
  42:   
  43:      signal(SIGCHLD, SIG_IGN); /* 蹇界暐瀛愯繘紼嬬粨鏉熶俊鍙鳳紝闃叉鍑虹幇鍍靛案榪涚▼ */ 
  44:   
  45:      init_daemon(); 
  46:   
  47:      while(1) 
  48:      { 
  49:              sleep(1);
  50:              
  51:  // 娉ㄦ剰, 鏃ュ織鍐欏埌榪欎釜鐩綍
  52:              if((fp = fopen("/var/tmp/test.log", "a")) != NULL) 
  53:              { 
  54:                      fprintf(fp, "%s\n", "test message"); 
  55:                      fclose(fp); 
  56:              } 
  57:      } 
  58:   
  59:      return 0;
  60:  }

1.2 緙栧啓鏈嶅姟鑴氭湰

鍙傝冮摼鎺?a >http://blog.sina.com.cn/s/blog_57421ff80100c7nn.html

綰㈣壊瀛楁槸闇瑕佸~鍐欑殑閮ㄥ垎, 鏂囦歡澶撮儴鍒嗗彲浠ラ夊~

   1:  #!/bin/bash
   2:   
   3:  # chkconfig: 3 3 1
   4:   
   5:  # description: web kill center
   6:   
   7:  EXEC_PATH=/usr/local/bin
   8:   
   9:  EXEC=CenterServiced
  10:   
  11:  PID_FILE=/var/run/CenterServiced.pid
  12:   
  13:  DAEMON=/usr/local/bin/CenterServiced
  14:   
  15:  if ! [ -x $EXEC_PATH/$EXEC ] ; then
  16:   
  17:  echo "ERROR: $EXEC_PATH/$EXEC not found"
  18:   
  19:  exit 1
  20:   
  21:  fi
  22:   
  23:  stop()
  24:   
  25:  {
  26:   
  27:  echo "Stoping $EXEC ..."
  28:   
  29:  killall $DAEMON >/dev/null
  30:   
  31:  echo "Shutting down $EXEC: [ OK ]"
  32:   
  33:  }
  34:   
  35:  start()
  36:   
  37:  {
  38:   
  39:  echo "Starting $EXEC ..."
  40:   
  41:  $DAEMON > /dev/null &
  42:   
  43:  echo "Starting $EXEC: [ OK ]"
  44:   
  45:  }
  46:   
  47:  restart()
  48:   
  49:  {
  50:   
  51:  stop
  52:   
  53:  start
  54:   
  55:  }
  56:   
  57:  case "$1" in
  58:   
  59:  start)
  60:   
  61:  start
  62:   
  63:  ;;
  64:   
  65:  stop)
  66:   
  67:  stop
  68:   
  69:  ;;
  70:   
  71:  restart)
  72:   
  73:  restart
  74:   
  75:  ;;
  76:   
  77:  status)
  78:   
  79:  status -p $PID_FILE $DAEMON
  80:   
  81:  ;;
  82:   
  83:  *)
  84:   
  85:  echo "Usage: service $EXEC {start|stop|restart|status}"
  86:   
  87:  exit 1
  88:   
  89:  esac
  90:   
  91:  exit $?
  92:   

1.3 鍒涘緩鏈嶅姟

鍙傝冮摼鎺?a >http://hi.baidu.com/guanxiansun/blog/item/b4c7dcf55f6011e47709d724.html

灝嗘湇鍔℃枃浠舵嫹璐濆埌/etc/init.d涓?鍘繪帀鎵╁睍鍚? 鏂囦歡鍚嶅嵆鏄湇鍔″悕

chmod +x ./wkcenter

濡傛灉涓嶈緗惎鍔? 閭d箞service涓皢鏃犳硶鎵懼埌璇ユ湇鍔″強鎿嶄綔

1.4 璁劇疆鍚姩欏哄簭

鍒涘緩鍚姩閾炬帴

ln /etc/init.d/wkcenter /etc/rc3.d/S03wkcenter

鍒涘緩鍏抽棴閾炬帴

ln /etc/init.d/wkcenter /etc/rc0.d/K03wkcenter

1.5 娣誨姞鏈嶅姟

chkconfig --add wkcenter

鏌ョ湅鏈嶅姟鏄惁瀛樺湪

chkconfig 鈥?list | grep wkcenter

鏌ョ湅鏈嶅姟鐘舵?

chkconfig wkcenter on

娉ㄦ剰, 紜wkcenter鍦?,3,4,5涓換鎰忔垨鑰呴儴鍒嗗紑鍚? 蹇呴』涓虹豢瀛? 鐏板瓧浠h〃鏈嶅姟鏃犳硶寮鏈哄惎鍔ㄦ垨鑰呭叾浠栭棶棰?

1.6 嫻嬭瘯

涓存椂寮鍚懡浠ゆ祴璇?

service wkcenter start

1.7 QA

鍙傝冮摼鎺? http://blog.526net.com/?p=1706

1. 鏈嶅姟鍒囪涓嶅彲鏀懼湪鐢ㄦ埛home鐩綍, 鏈濂芥斁鍦?usr/local/bin鐩綍, 鏃ュ織鍐欏埌var涓? 鍚﹀垯鏈嶅姟嫻嬭瘯姝e父,浣嗘槸鏃犳硶鑷姩鍚姩

2. Linux涓? 鐖惰繘紼嬪惎鍔ㄧ殑紼嬪簭鐨勭敓鍛芥湡璺熼殢鐖惰繘紼? 鐖惰繘紼嬪彲浠ユ槸緇堢, 鐖惰繘紼嬩竴鏃︾粓姝? 瀛愯繘紼嬮兘蹇呴』緇撴潫. 鍥犳瀹堟姢榪涚▼闇瑕佽劚紱葷埗榪涚▼,閬垮厤琚埗榪涚▼鐢熷懡鏈熸帶鍒?

]]>
璺ㄥ鉤鍙癠nicode涓嶶TF8浜掕漿浠g爜http://www.shnenglu.com/sunicdavy/archive/2012/02/27/166623.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Mon, 27 Feb 2012 06:21:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/02/27/166623.htmlhttp://www.shnenglu.com/sunicdavy/comments/166623.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/02/27/166623.html#Feedback9http://www.shnenglu.com/sunicdavy/comments/commentRss/166623.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/166623.html鍙傝冩潵婧?http://blog.csdn.net/flying8127/article/details/1598521

鍦ㄥ師鏉ュ師鍩虹涓?灝嗕唬鐮佹暣鐞?騫跺姞寮哄畨鍏ㄦ? 騫舵寜鐓indowsAPI璁捐, 娣誨姞杈撳嚭緙撳啿闀垮害鎺㈡祴鍔熻兘

褰揙utUTFString涓篘ULL鏃? 鍙互榪涜杈撳嚭鐨刄TF8瀛楃涓查暱搴︽帰嫻?/p>

   1:  uint32 UniCharToUTF8(wchar_t UniChar, char *OutUTFString)
   2:      {
   3:   
   4:          uint32 UTF8CharLength = 0;
   5:   
   6:          if (UniChar < 0x80)
   7:          {  
   8:              if ( OutUTFString )
   9:                  OutUTFString[UTF8CharLength++] = (char)UniChar;
  10:              else
  11:                  UTF8CharLength++;
  12:          }
  13:          else if(UniChar < 0x800)
  14:          {
  15:              if ( OutUTFString )
  16:              {
  17:                  OutUTFString[UTF8CharLength++] = 0xc0 | ( UniChar >> 6 );
  18:                  OutUTFString[UTF8CharLength++] = 0x80 | ( UniChar & 0x3f );
  19:              }
  20:              else
  21:              {
  22:                  UTF8CharLength += 2;
  23:              }
  24:          }
  25:          else if(UniChar < 0x10000 )
  26:          {
  27:              if ( OutUTFString )
  28:              {
  29:                  OutUTFString[UTF8CharLength++] = 0xe0 | ( UniChar >> 12 );
  30:                  OutUTFString[UTF8CharLength++] = 0x80 | ( (UniChar >> 6) & 0x3f );
  31:                  OutUTFString[UTF8CharLength++] = 0x80 | ( UniChar & 0x3f );
  32:              }
  33:              else
  34:              {
  35:                  UTF8CharLength += 3;
  36:              }
  37:          }
  38:          else if( UniChar < 0x200000 ) 
  39:          {
  40:              if ( OutUTFString )
  41:              {
  42:                  OutUTFString[UTF8CharLength++] = 0xf0 | ( (int)UniChar >> 18 );
  43:                  OutUTFString[UTF8CharLength++] = 0x80 | ( (UniChar >> 12) & 0x3f );
  44:                  OutUTFString[UTF8CharLength++] = 0x80 | ( (UniChar >> 6) & 0x3f );
  45:                  OutUTFString[UTF8CharLength++] = 0x80 | ( UniChar & 0x3f );
  46:              }
  47:              else
  48:              {
  49:                  UTF8CharLength += 4;
  50:              }
  51:   
  52:          }
  53:   
  54:          return UTF8CharLength;
  55:      }

 

褰揙utUnicodeString涓篘ULL鏃? 鍙互榪涜杈撳嚭鐨刄nicode瀛楃涓查暱搴︽帰嫻?/p>

 

   1:  uint32 UTF8StrToUnicode( const char* UTF8String, uint32 UTF8StringLength, wchar_t* OutUnicodeString, uint32 UnicodeStringBufferSize )
   2:      {
   3:          uint32 UTF8Index = 0;
   4:          uint32 UniIndex = 0;
   5:   
   6:          while ( UTF8Index < UTF8StringLength )
   7:          {
   8:              unsigned char UTF8Char = UTF8String[UTF8Index];
   9:   
  10:              if ( UnicodeStringBufferSize != 0 && UniIndex >= UnicodeStringBufferSize )
  11:                  break;
  12:   
  13:              if ((UTF8Char & 0x80) == 0) 
  14:              {
  15:                  const uint32 cUTF8CharRequire = 1;
  16:   
  17:                  // UTF8瀛楃爜涓嶈凍
  18:                  if ( UTF8Index + cUTF8CharRequire > UTF8StringLength )
  19:                      break;
  20:   
  21:                  if ( OutUnicodeString )
  22:                  {
  23:                      wchar_t& WideChar = OutUnicodeString[UniIndex]; 
  24:   
  25:                      WideChar = UTF8Char;
  26:                  }
  27:   
  28:                  UTF8Index++;
  29:                  
  30:              } 
  31:              else if((UTF8Char & 0xE0) == 0xC0)  ///< 110x-xxxx 10xx-xxxx
  32:              {
  33:                  const uint32 cUTF8CharRequire = 2;
  34:   
  35:                  // UTF8瀛楃爜涓嶈凍
  36:                  if ( UTF8Index + cUTF8CharRequire > UTF8StringLength )
  37:                      break;
  38:   
  39:                  if ( OutUnicodeString )
  40:                  {
  41:                      wchar_t& WideChar = OutUnicodeString[UniIndex]; 
  42:                      WideChar  = (UTF8String[UTF8Index + 0] & 0x3F) << 6;
  43:                      WideChar |= (UTF8String[UTF8Index + 1] & 0x3F);
  44:                  }
  45:                  
  46:                  UTF8Index += cUTF8CharRequire;
  47:              }
  48:              else if((UTF8Char & 0xF0) == 0xE0)  ///< 1110-xxxx 10xx-xxxx 10xx-xxxx
  49:              {
  50:                  const uint32 cUTF8CharRequire = 3;
  51:   
  52:                  // UTF8瀛楃爜涓嶈凍
  53:                  if ( UTF8Index + cUTF8CharRequire > UTF8StringLength )
  54:                      break;
  55:   
  56:                  if ( OutUnicodeString )
  57:                  {
  58:                      wchar_t& WideChar = OutUnicodeString[UniIndex]; 
  59:   
  60:                      WideChar  = (UTF8String[UTF8Index + 0] & 0x1F) << 12;
  61:                      WideChar |= (UTF8String[UTF8Index + 1] & 0x3F) << 6;
  62:                      WideChar |= (UTF8String[UTF8Index + 2] & 0x3F);
  63:                  }
  64:                  
  65:   
  66:                  UTF8Index += cUTF8CharRequire;
  67:              } 
  68:              else if((UTF8Char & 0xF8) == 0xF0)  ///< 1111-0xxx 10xx-xxxx 10xx-xxxx 10xx-xxxx 
  69:              {
  70:                  const uint32 cUTF8CharRequire = 4;
  71:   
  72:                  // UTF8瀛楃爜涓嶈凍
  73:                  if ( UTF8Index + cUTF8CharRequire > UTF8StringLength )
  74:                      break;
  75:   
  76:                  if ( OutUnicodeString )
  77:                  {
  78:                      wchar_t& WideChar = OutUnicodeString[UniIndex]; 
  79:   
  80:                      WideChar  = (UTF8String[UTF8Index + 0] & 0x0F) << 18;
  81:                      WideChar  = (UTF8String[UTF8Index + 1] & 0x3F) << 12;
  82:                      WideChar |= (UTF8String[UTF8Index + 2] & 0x3F) << 6;
  83:                      WideChar |= (UTF8String[UTF8Index + 3] & 0x3F);
  84:                  }
  85:   
  86:                  UTF8Index += cUTF8CharRequire;
  87:              } 
  88:              else ///< 1111-10xx 10xx-xxxx 10xx-xxxx 10xx-xxxx 10xx-xxxx 
  89:              {
  90:                  const uint32 cUTF8CharRequire = 5;
  91:   
  92:                  // UTF8瀛楃爜涓嶈凍
  93:                  if ( UTF8Index + cUTF8CharRequire > UTF8StringLength )
  94:                      break;
  95:   
  96:                  if ( OutUnicodeString )
  97:                  {
  98:                      wchar_t& WideChar = OutUnicodeString[UniIndex]; 
  99:   
 100:                      WideChar  = (UTF8String[UTF8Index + 0] & 0x07) << 24;
 101:                      WideChar  = (UTF8String[UTF8Index + 1] & 0x3F) << 18;
 102:                      WideChar  = (UTF8String[UTF8Index + 2] & 0x3F) << 12;
 103:                      WideChar |= (UTF8String[UTF8Index + 3] & 0x3F) << 6;
 104:                      WideChar |= (UTF8String[UTF8Index + 4] & 0x3F);
 105:                  }
 106:   
 107:                  UTF8Index += cUTF8CharRequire;
 108:              }
 109:   
 110:   
 111:              UniIndex++;
 112:          }
 113:   
 114:          return UniIndex;
 115:      }

鐤楁晥: 鐢ㄤ簡姝や唬鐮佸晩, 鍐嶄篃涓嶇敤琚玦conv鎶樼(浜?/p>

]]>
Linux/Windows涓媓ash_map鐨勮〃鐜板樊寮?/title><link>http://www.shnenglu.com/sunicdavy/archive/2012/02/23/166353.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Thu, 23 Feb 2012 10:54:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2012/02/23/166353.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/166353.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2012/02/23/166353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/166353.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/166353.html</trackback:ping><description><![CDATA[<p>hash_map涓嶆槸鏍囧噯搴?鍥犳涓嶅悓騫沖彴涓嬪寘鍚ご鏂囦歡涓嶅悓, 鍓嶇紑涔熶笉鍚?榪欓噷浣跨敤浜嗕竴涓氱敤瀹氫箟</p> <div id="hvzpftn" class="csharpcode"><pre><span id="hvzpftn" class="lnum"> 1: </span>#ifdef _WIN32</pre><pre><span id="hvzpftn" class="lnum"> 2: </span> #include <hash_map></pre><pre><span id="hvzpftn" class="lnum"> 3: </span> <span id="hvzpftn" class="preproc">#define</span> HASHMAP_PREFIX stdext</pre><pre><span id="hvzpftn" class="lnum"> 4: </span><span id="hvzpftn" class="preproc">#else</span></pre><pre><span id="hvzpftn" class="lnum"> 5: </span> #include <ext/hash_map></pre><pre><span id="hvzpftn" class="lnum"> 6: </span> <span id="hvzpftn" class="preproc">#define</span> HASHMAP_PREFIX __gnu_cxx </pre><pre><span id="hvzpftn" class="lnum"> 7: </span><span id="hvzpftn" class="preproc">#endif</span></pre></div> <p> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> </p> <p>瀵逛簬鍒濆妗跺ぇ灝忚緗?Linux涓嬩嬌鐢╤ash_map鏋勯犲嚱鏁板彲浠ヨ緗? Windows涓嬪垯娌℃湁瀵瑰簲鐨勮緗嚱鏁?</p> <p>鏌ラ槄Windows涓媓ash_map鐨勬簮鐮?騫跺湪hash_map()榛樿鏋勯犲嚱鏁版梺杈規坊鍔犱竴涓祴璇曠敤鍒濆妗惰緗嚱鏁?/p> <div id="hvzpftn" class="csharpcode"><pre><span id="hvzpftn" class="lnum"> 1: </span> hash_map( size_type _Buckets )</pre></div> <div id="hvzpftn" class="csharpcode"><pre><span id="hvzpftn" class="lnum"> 2: </span> : _Mybase(key_compare(), allocator_type())</pre></div> <div id="hvzpftn" class="csharpcode"><pre><span id="hvzpftn" class="lnum"> 3: </span> {</pre></div> <div id="hvzpftn" class="csharpcode"><pre><span id="hvzpftn" class="lnum"> 4: </span> _Init( _Buckets );</pre></div> <div id="hvzpftn" class="csharpcode"><pre><span id="hvzpftn" class="lnum"> 5: </span> }</pre></div> <blockquote> </blockquote> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>鎺ヤ笅鏉ヤ嬌鐢ㄧ浉鍚岀殑嫻嬭瘯浠g爜</p> <div id="hvzpftn" class="csharpcode"><pre><span id="hvzpftn" class="lnum"> 1: </span> <span id="hvzpftn" class="kwrd">const</span> uint32 Buckets = 1000;</pre><pre><span id="hvzpftn" class="lnum"> 2: </span> HASHMAP_PREFIX::hash_map<uint32,uint32> MyHash( Buckets );</pre><pre><span id="hvzpftn" class="lnum"> 3: </span> </pre><pre><span id="hvzpftn" class="lnum"> 4: </span> TimeRuler Ruler;</pre><pre><span id="hvzpftn" class="lnum"> 5: </span> <span id="hvzpftn" class="kwrd">for</span> ( uint32 i = 0; i <1000000;i++)</pre><pre><span id="hvzpftn" class="lnum"> 6: </span> {</pre><pre><span id="hvzpftn" class="lnum"> 7: </span> MyHash[i] = i;</pre><pre><span id="hvzpftn" class="lnum"> 8: </span> }</pre><pre><span id="hvzpftn" class="lnum"> 9: </span> </pre><pre><span id="hvzpftn" class="lnum"> 10: </span> printf(<span id="hvzpftn" class="str">"%d\n"</span>, Ruler.GetCostTime() );</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>榪欓噷鐨凾imeRuler鏄嬌鐢╞oost timer鐨勬椂闂存埑灝佽</p> <p>Release涓嬫祴璇曠粨鏋?</p> <table style="color: #000000" border="0" cellspacing="0" cellpadding="2" width="400"> <tbody> <tr> <td valign="top" width="133">    OS \ Buckets</td> <td valign="top" width="133">          8 ( default )</td> <td valign="top" width="133">        1000 </td></tr> <tr> <td valign="top" width="133">     Win7</td> <td valign="top" width="133">         430ms</td> <td valign="top" width="133">      560ms</td></tr> <tr> <td valign="top" width="133">     Mint( VMware )</td> <td valign="top" width="133">         127ms</td> <td valign="top" width="133">      127ms</td></tr></tbody></table> <p> </p> <p>Windows鐨勬祴璇曠粨鏋滆鏄? 涓嶇粰鍑烘《鍒濆鍖栧嚱鏁版槸姝g‘鐨? 榛樿綆$悊姣旇嚜宸辮緗洿楂樻晥. </p> <p>Linux騫沖彴鎰熻寰堣寮? 涓嶆竻妤氭槸涓嶆槸铏氭嫙鏈洪犳垚鐨勭粨鏋滀笉鍑嗙‘</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/166353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2012-02-23 18:54 <a href="http://www.shnenglu.com/sunicdavy/archive/2012/02/23/166353.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>luabind鐨勬紜畬鏁寸紪璇戞硶http://www.shnenglu.com/sunicdavy/archive/2012/02/21/166118.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Tue, 21 Feb 2012 03:23:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2012/02/21/166118.htmlhttp://www.shnenglu.com/sunicdavy/comments/166118.htmlhttp://www.shnenglu.com/sunicdavy/archive/2012/02/21/166118.html#Feedback1http://www.shnenglu.com/sunicdavy/comments/commentRss/166118.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/166118.html涔嬪墠鐪嬩簡緗戜笂涓綃?a >鏂囩珷浠嬬粛luabind, 鍙戠幇榪欑緙栬瘧鍑烘潵鐨刲uabind鍙細瀹夎debug鐗堟湰, release鐗堟湰鐨剆o渚濈劧鍧︾劧鐨勮漢鍦ㄥ伐紼嬬洰褰?/p>

鏌ラ槄bjam鐨勫弬鏁拌鏄庡強luabind鐨刯amroot鏂囦歡絎?40琛屾湁濡備笅鏂囧瓧

install stage
  : luabind
  : <location>$(stage-locate)
    <install-no-version-symlinks>on
    <install-dependencies>on
    <install-type>LIB
  ;

璇存槑鍙傛暟搴旇鏄繖鏍風殑: bjam install [stage]

鑰屼笖鏂囩珷涓粰鍑虹殑鏄痓jam install 鍥犳榛樿鍑鴻皟璇曠増涔熸槸姝g‘鐨? 鑰屼笖浼拌浣滆呭彧緙栬瘧浜嗚皟璇曠増灝辨病鏈夊鐞唕elease鐗堜簡

姝g‘鐨刲uabind緙栬瘧娉曞簲璇ユ槸:

export BOOST_ROOT=/home/davy/dev/boost_1_48_0

export LUA_PATH=/usr/local/

/home/davy/dev/boost_1_48_0/bjam stage --toolset=gcc --with-date_time --with-fpic --with-filesystem link=static debug release

/home/davy/dev/boost_1_48_0/bjam install debug

/home/davy/dev/boost_1_48_0/bjam install release

 

鎴戣繖閲屽繀欏繪寚鏄巄jam鏄洜涓篵oost鐨刡jam鐗堟湰楂樹簬榛樿瀹夎鐨勭増鏈? 鍥犳浣跨敤楂樼増鏈紪璇?



]]>
Linux鍦╒Mware涓綉緇滆緗?/title><link>http://www.shnenglu.com/sunicdavy/archive/2012/02/04/164934.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Sat, 04 Feb 2012 03:41:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2012/02/04/164934.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/164934.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2012/02/04/164934.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/164934.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/164934.html</trackback:ping><description><![CDATA[<p>榪欓噷浣跨敤鐨勬槸Ubuntu鐨勬渶嫻佽鍙戣鐗圡int, 鍏朵粬鐗堟湰綾諱技</p> <p>浠ヤ笅灝嗚櫄鎷熸満鍐呯郴緇熷彨Guest, 榪愯VMWare鐨勭郴緇熷彨Host</p> <p>灝哣MWare鐨勭綉緇滄柟寮忚涓築ridge妯″紡. 娉ㄦ剰Host-Only妯″紡鍙兘涓嶩ost榪炴帴,灞鍩熺綉鐨勬満鍣ㄥ強浜掕仈緗戞満鍣ㄦ棤娉曡闂?/p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/Linux-VMware_A07B/image_6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/Linux-VMware_A07B/image_thumb_2.png" width="306" height="276"></a></p> <p>鍦℅uest鐨勭綉緇滆緗腑,灝咺P璁劇疆涓轟笌Host鍦ㄤ竴涓眬鍩熺綉緗戞鐨処P, 璁劇疆DNS</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/Linux-VMware_A07B/image_4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/Linux-VMware_A07B/image_thumb_1.png" width="402" height="292"></a></p> <p>鍏抽棴Guest緋葷粺</p> <p>鎺ヤ笅鏉ュ皢Host鐨勫彲浠ヤ笂緗戠殑榪炴帴娣誨姞鍏變韓,騫惰繛鎺ュ埌VMNet1</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/Linux-VMware_A07B/image_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/Linux-VMware_A07B/image_thumb.png" width="599" height="232"></a></p> <p>榪涘叆Guest緋葷粺, 嫻嬭瘯涓婄綉</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/164934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2012-02-04 11:41 <a href="http://www.shnenglu.com/sunicdavy/archive/2012/02/04/164934.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://5474hu.com" target="_blank">欧美国产精品劲爆</a>| <a href="http://gg5gg.com" target="_blank">久久人体大胆视频</a>| <a href="http://cgnwp.com" target="_blank">欧美色区777第一页</a>| <a href="http://baluka-tw.com" target="_blank">一区二区三区四区国产</a>| <a href="http://www-116036.com" target="_blank">亚洲电影在线观看</a>| <a href="http://wxsanyuan.com" target="_blank">欧美肥婆bbw</a>| <a href="http://51jieyanla.com" target="_blank">一区二区av在线</a>| <a href="http://muwendada.com" target="_blank">亚洲一区二区三区在线观看视频</a>| <a href="http://hongzaixian.com" target="_blank">久久久久国产精品一区三寸</a>| <a href="http://jinlijun.com" target="_blank">一个色综合导航</a>| <a href="http://ktt2048.com" target="_blank">国产精品视频网</a>| <a href="http://yngtxny.com" target="_blank">麻豆成人综合网</a>| <a href="http://bocai4488.com" target="_blank">欧美精品激情在线观看</a>| <a href="http://0070571.com" target="_blank">午夜精品久久久久久久久久久</a>| <a href="http://r6r4.com" target="_blank">欧美在线中文字幕</a>| <a href="http://725443.com" target="_blank">亚洲精品在线免费观看视频</a>| <a href="http://popowq.com" target="_blank">亚洲性夜色噜噜噜7777</a>| <a href="http://my736.com" target="_blank">精品成人在线观看</a>| <a href="http://91mase.com" target="_blank">日韩午夜av电影</a>| <a href="http://211186.com" target="_blank">怡红院精品视频</a>| <a href="http://by2565.com" target="_blank">夜夜嗨av一区二区三区</a>| <a href="http://xingmaokeji.com" target="_blank">激情久久久久久久</a>| <a href="http://epiegame.com" target="_blank">亚洲美女av网站</a>| <a href="http://7628x.com" target="_blank">极品少妇一区二区</a>| <a href="http://hfztkyhfz.com" target="_blank">一区二区欧美在线</a>| <a href="http://0808333.com" target="_blank">有码中文亚洲精品</a>| <a href="http://kuaikan97.com" target="_blank">亚洲一区二区三区在线看</a>| <a href="http://9658888.com" target="_blank">亚洲国产欧美日韩精品</a>| <a href="http://senlin86.com" target="_blank">亚洲欧美一区二区三区极速播放 </a>| <a href="http://www-188445.com" target="_blank">国产一二三精品</a>| <a href="http://ywy99.com" target="_blank">亚洲激情成人在线</a>| <a href="http://wwwcc7777.com" target="_blank">国产亚洲欧美一区在线观看</a>| <a href="http://www49718.com" target="_blank">亚洲激情午夜</a>| <a href="http://543422.com" target="_blank">伊人成人在线</a>| <a href="http://www-333304.com" target="_blank">亚洲欧美中文日韩在线</a>| <a href="http://chaoporn97.com" target="_blank">亚洲免费av片</a>| <a href="http://97seee.com" target="_blank">久久夜色精品</a>| <a href="http://dgxinshidai.com" target="_blank">久久久久中文</a>| <a href="http://5588gww.com" target="_blank">国产精品中文字幕欧美</a>| <a href="http://580078.com" target="_blank">亚洲电影av</a>| <a href="http://0999555.com" target="_blank">一本综合精品</a>| <a href="http://127mingdao.com" target="_blank">日韩亚洲欧美在线观看</a>| <a href="http://498626.com" target="_blank">久久久久在线观看</a>| <a href="http://251aaa.com" target="_blank">久久精品国产第一区二区三区</a>| <a href="http://imaben.com" target="_blank">欧美日韩一区精品</a>| <a href="http://zgztby.com" target="_blank">91久久香蕉国产日韩欧美9色</a>| <a href="http://sewuyueyue.com" target="_blank">国内成人精品一区</a>| <a href="http://gzpurefaith.com" target="_blank">亚洲自拍偷拍福利</a>| <a href="http://www789yys.com" target="_blank">亚洲一二三四区</a>| <a href="http://149155.com" target="_blank">欧美另类综合</a>| <a href="http://pabjzz.com" target="_blank">最新日韩av</a>| <a href="http://wwwxigua66.com" target="_blank">亚洲精品综合久久中文字幕</a>| <a href="http://4480vv.com" target="_blank">久久亚洲私人国产精品va媚药</a>| <a href="http://y65y.com" target="_blank">久久精品国产在热久久</a>| <a href="http://345521.com" target="_blank">国产日韩欧美在线看</a>| <a href="http://emu160.com" target="_blank">亚洲小说欧美另类社区</a>| <a href="http://ythbhg.com" target="_blank">亚洲综合欧美</a>| <a href="http://mfgun.com" target="_blank">国产精品麻豆成人av电影艾秋</a>| <a href="http://pmref.com" target="_blank">99天天综合性</a>| <a href="http://xingmaipet.com" target="_blank">亚洲午夜小视频</a>| <a href="http://044925.com" target="_blank">欧美日韩精品不卡</a>| <a href="http://dehuabz.com" target="_blank">夜夜嗨av一区二区三区</a>| <a href="http://621765.com" target="_blank">亚洲综合电影一区二区三区</a>| <a href="http://muwendada.com" target="_blank">欧美视频一区在线观看</a>| <a href="http://ctmhotel.com" target="_blank">一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 </a>| <a href="http://ca88tv.com" target="_blank">亚洲综合欧美</a>| <a href="http://wocao1997.com" target="_blank">国产精品老女人精品视频</a>| <a href="http://qiezisp2.com" target="_blank">国产精品成人在线观看</a>| <a href="http://969093.com" target="_blank">亚洲国产毛片完整版</a>| <a href="http://yiqipapa8.com" target="_blank">好看的av在线不卡观看</a>| <a href="http://trhht.com" target="_blank">欧美亚洲一区</a>| <a href="http://cuucs.com" target="_blank">久久婷婷成人综合色</a>| <a href="http://yymh1056.com" target="_blank">永久域名在线精品</a>| <a href="http://caerusmdx.com" target="_blank">狼狼综合久久久久综合网</a>| <a href="http://833816.com" target="_blank">欧美激情一二三区</a>| <a href="http://www-4012345.com" target="_blank">亚洲开发第一视频在线播放</a>| <a href="http://xiaokd666.com" target="_blank">欧美日本在线一区</a>| <a href="http://d1112.com" target="_blank">亚洲午夜精品一区二区</a>| <a href="http://syruili.com" target="_blank">久久久91精品国产一区二区三区</a>| <a href="http://www330088.com" target="_blank">国语精品一区</a>| <a href="http://bocfdj.com" target="_blank">欧美gay视频</a>| <a href="http://dy25777.com" target="_blank">一本久久青青</a>| <a href="http://126film.com" target="_blank">久久精品一本久久99精品</a>| <a href="http://6868681.com" target="_blank">尤物yw午夜国产精品视频明星</a>| <a href="http://www227zh.com" target="_blank">老司机午夜精品视频</a>| <a href="http://sz-jyqj.com" target="_blank">亚洲精品欧洲精品</a>| <a href="http://hehextv.com" target="_blank">欧美一级久久久久久久大片</a>| <a href="http://26thb.com" target="_blank">狠狠做深爱婷婷久久综合一区</a>| <a href="http://ahqdlq.com" target="_blank">女女同性精品视频</a>| <a href="http://www8qa.com" target="_blank">亚洲视频中文</a>| <a href="http://exsecular.com" target="_blank">久久尤物电影视频在线观看</a>| <a href="http://tianxiantxtv.com" target="_blank">亚洲三级电影全部在线观看高清</a>| <a href="http://4080sy.com" target="_blank">欧美午夜电影在线</a>| <a href="http://love136.com" target="_blank">久久久国产午夜精品</a>| <a href="http://725443.com" target="_blank">亚洲国产毛片完整版</a>| <a href="http://hs045.com" target="_blank">欧美一区二区三区在线播放</a>| <a href="http://sz-jyqj.com" target="_blank">精品成人一区</a>| <a href="http://jiujiuri8.com" target="_blank">亚洲高清视频在线</a>| <a href="http://atmub.com" target="_blank">午夜精品区一区二区三</a>| <a href="http://bodabloc.com" target="_blank">在线国产亚洲欧美</a>| <a href="http://df7166.com" target="_blank">国产精品久久久久影院亚瑟 </a>| <a href="http://042225.com" target="_blank">亚洲三级视频</a>| <a href="http://8946286.com" target="_blank">久久精品噜噜噜成人av农村</a>| <a href="http://220fuke.com" target="_blank">亚洲伦理一区</a>| <a href="http://8eeeccc.com" target="_blank">国产午夜精品一区二区三区欧美 </a>| <a href="http://9585865.com" target="_blank">西瓜成人精品人成网站</a>| <a href="http://223533.com" target="_blank">亚洲国产美女精品久久久久∴</a>| <a href="http://448968.com" target="_blank">欧美视频二区</a>| <a href="http://kk66mm.com" target="_blank">欧美sm视频</a>| <a href="http://cnchtx.com" target="_blank">久久av老司机精品网站导航</a>| <a href="http://huaihuaihuai.com" target="_blank">亚洲伦理久久</a>| <a href="http://azaz7.com" target="_blank">欧美成人午夜激情视频</a>| <a href="http://www35177.com" target="_blank">欧美亚洲综合另类</a>| <a href="http://www-44469.com" target="_blank">日韩午夜在线播放</a>| <a href="http://dadepaimai.com" target="_blank">在线电影一区</a>| <a href="http://sz-changrong.com" target="_blank">国产日韩精品一区二区三区</a>| <a href="http://www-5013.com" target="_blank">欧美日本一区</a>| <a href="http://555888666.com" target="_blank">欧美h视频在线</a>| <a href="http://329aaa.com" target="_blank">久久亚洲国产精品一区二区</a>| <a href="http://www90aaa.com" target="_blank">亚洲欧美日本国产有色</a>| <a href="http://liuyangzi.com" target="_blank">亚洲精品久久在线</a>| <a href="http://5a07.com" target="_blank">亚洲国产高清在线</a>| <a href="http://zytxkj.com" target="_blank">欧美va天堂在线</a>| <a href="http://china391.com" target="_blank">久久久精品视频成人</a>| <a href="http://www5566szy.com" target="_blank">亚洲夜间福利</a>| <a href="http://saobi6.com" target="_blank">亚洲视频视频在线</a>| <a href="http://5773000.com" target="_blank">日韩一级片网址</a>| <a href="http://jzsp87.com" target="_blank">亚洲区欧美区</a>| <a href="http://3848404.com" target="_blank">亚洲人体一区</a>| <a href="http://xpj694.com" target="_blank">91久久精品国产91久久性色</a>| <a href="http://8484vivo.com" target="_blank">伊人伊人伊人久久</a>| <a href="http://njhuike.com" target="_blank">国产在线日韩</a>| <a href="http://xianjiacf.com" target="_blank">黄色精品一区二区</a>| <a href="http://138268.com" target="_blank">国内成人在线</a>| <a href="http://820002.com" target="_blank">精久久久久久</a>| <a href="http://8eya.com" target="_blank">亚洲国产女人aaa毛片在线</a>| <a href="http://ffff53.com" target="_blank">理论片一区二区在线</a>| <a href="http://www-216678.com" target="_blank">久久久国产午夜精品</a>| <a href="http://rljyy.com" target="_blank">久久精品综合一区</a>| <a href="http://www-493049.com" target="_blank">久久久久国产精品麻豆ai换脸</a>| <a href="http://17kfe.com" target="_blank">欧美在线综合</a>| <a href="http://caerusmdx.com" target="_blank">久久久www免费人成黑人精品 </a>| <a href="http://kk8586.com" target="_blank">久久疯狂做爰流白浆xx</a>| <a href="http://7269003.com" target="_blank">性做久久久久久免费观看欧美</a>| <a href="http://580388.com" target="_blank">亚洲女性喷水在线观看一区</a>| <a href="http://qq5621.com" target="_blank">亚洲永久视频</a>| <a href="http://91mase.com" target="_blank">欧美亚洲一区二区三区</a>| <a href="http://6661639.com" target="_blank">欧美一区二区三区在线免费观看</a>| <a href="http://lucky5888.com" target="_blank">性做久久久久久</a>| <a href="http://www30bxbx.com" target="_blank">久久久欧美精品</a>| <a href="http://xiaofan123.com" target="_blank">欧美不卡激情三级在线观看</a>| <a href="http://niu96.com" target="_blank">亚洲第一在线视频</a>| <a href="http://trhht.com" target="_blank">亚洲另类自拍</a>| <a href="http://15013010203.com" target="_blank">亚洲一区二区在线观看视频</a>| <a href="http://677679.com" target="_blank">一本色道久久综合亚洲二区三区</a>| <a href="http://73cao.com" target="_blank">在线亚洲成人</a>| <a href="http://www49966.com" target="_blank">午夜精品久久久久99热蜜桃导演</a>| <a href="http://012492.com" target="_blank">久久国产精品第一页</a>| <a href="http://613609.com" target="_blank">蜜臀a∨国产成人精品</a>| <a href="http://5555547.com" target="_blank">欧美激情精品久久久久久</a>| <a href="http://755795.com" target="_blank">亚洲精品免费在线</a>| <a href="http://www22336.com" target="_blank">亚洲视频碰碰</a>| <a href="http://uuuu30.com" target="_blank">久久久精品视频成人</a>| <a href="http://833816.com" target="_blank">欧美激情第三页</a>| <a href="http://131397.com" target="_blank">国产精品美女午夜av</a>| <a href="http://7234hh.com" target="_blank">一区二区视频免费在线观看</a>| <a href="http://0070571.com" target="_blank">亚洲精品欧美精品</a>| <a href="http://739191g.com" target="_blank">亚洲欧美日韩在线播放</a>| <a href="http://777777hd.com" target="_blank">噜噜噜在线观看免费视频日韩 </a>| <a href="http://9238479.com" target="_blank">久久亚洲综合色一区二区三区</a>| <a href="http://ww9494.com" target="_blank">女仆av观看一区</a>| <a href="http://universehb.com" target="_blank">一本久道久久综合婷婷鲸鱼</a>| <a href="http://16kkkk.com" target="_blank">香蕉精品999视频一区二区</a>| <a href="http://yw3328.com" target="_blank">另类欧美日韩国产在线</a>| <a href="http://yjizzdizhigmail.com" target="_blank">欧美日韩一区二区三</a>| <a href="http://787299.com" target="_blank">国产一区二区视频在线观看 </a>| <a href="http://www-tt211.com" target="_blank">国产女人aaa级久久久级</a>| <a href="http://miya2223.com" target="_blank">亚洲第一在线视频</a>| <a href="http://551692.com" target="_blank">亚洲欧美日韩一区在线</a>| <a href="http://jiujiuri8.com" target="_blank">免费日韩视频</a>| <a href="http://kissgz.com" target="_blank">亚洲一区二区三区免费视频 </a>| <a href="http://musicshq.com" target="_blank">99国产精品久久久久久久</a>| <a href="http://www-34909.com" target="_blank">欧美一级视频精品观看</a>| <a href="http://zj-jufeng.com" target="_blank">欧美精品自拍偷拍动漫精品</a>| <a href="http://ztsctgs.com" target="_blank">国产日产欧美一区</a>| <a href="http://k8m9.com" target="_blank">在线视频亚洲</a>| <a href="http://ju255.com" target="_blank">欧美粗暴jizz性欧美20</a>| <a href="http://cswlts.com" target="_blank">性欧美暴力猛交69hd</a>| <a href="http://sg-lxs.com" target="_blank">欧美日本在线观看</a>| <a href="http://cc1024.com" target="_blank">亚洲国产专区</a>| <a href="http://9a9u.com" target="_blank">久久久久久久97</a>| <a href="http://8484vivo.com" target="_blank">亚洲一区二区三区四区中文</a>| <a href="http://www-440447.com" target="_blank">欧美成人一区二免费视频软件</a>| <a href="http://zzzz80.com" target="_blank">国产精品少妇自拍</a>| <a href="http://gmqgw.com" target="_blank">一本色道精品久久一区二区三区 </a>| <a href="http://wxtarena.com" target="_blank">亚洲免费一在线</a>| <a href="http://wy77777.com" target="_blank">亚洲国产高清在线</a>| <a href="http://yye321.com" target="_blank">久久综合中文色婷婷</a>| <a href="http://xsxcn.com" target="_blank">国产三级欧美三级日产三级99</a>| <a href="http://nnnn34.com" target="_blank">亚洲视频图片小说</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>