锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲人成网站在线观看 ,久久久久久综合网天天,亚洲一区二区三区精品动漫http://www.shnenglu.com/Fox/category/5794.html娓告垙浜虹敓 != ( 浜虹敓 == 娓告垙 )zh-cnMon, 19 May 2008 13:56:21 GMTMon, 19 May 2008 13:56:21 GMT60緙栫▼涔嬬編錛氫竴鎽炵儥楗肩殑鎺掑簭錛堟湭瀹屾垚錛?/title><link>http://www.shnenglu.com/Fox/archive/2008/04/20/flapjack_sortting.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Sun, 20 Apr 2008 06:59:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/04/20/flapjack_sortting.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/47659.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/04/20/flapjack_sortting.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/47659.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/47659.html</trackback:ping><description><![CDATA[<p>Author: Fox</p> <p>棣栧厛澹版槑錛氭湰浜烘病鏈夎В鍐蟲帀榪欎釜闂銆?/p> <p>鐩告瘮絎竴閬?a href="http://www.shnenglu.com/Fox/archive/2008/04/17/control_cpu_using_curve.html" target=_blank>璁〤PU鍗犵敤鐜囨洸綰垮惉浣犳寚鎸?/a>瀵筗indows緋葷粺涓瑿PU鍗犳湁鐜囨蹇電殑鑰冨療鍜屽API鐨勪嬌鐢紝浠ュ強(qiáng)絎簩閬?a href="http://www.shnenglu.com/Fox/archive/2008/04/18/chinese_chess_one_param.html" target=_blank>涓浗璞℃灝嗗竻闂</a>瀵規(guī)娊璞″緩妯$殑鑰冨療銆?a target=_blank>榪欓亾棰樼洰</a>鎵嶇畻鏄竴閬撶畻娉曢鍚э紵涔嬪墠閭d袱閬撳挨鍏舵槸<a href="http://www.shnenglu.com/Fox/archive/2008/04/18/chinese_chess_one_param.html" target=_blank>涓浗璞℃灝嗗竻闂</a>鎬繪湁鐐硅剳絳嬫ヨ漿寮殑鍛抽亾銆?/p> <p>棰樼洰錛?font color=#800000>鏄熸湡浜旂殑鏅氫笂錛屼竴甯悓浜嬪湪甯屾牸鐜涘ぇ鍘﹂檮榪戠殑“紜洏閰掑惂”澶氬枬浜嗗嚑鏉傜▼搴忓憳澶氬枬浜嗗嚑鏉箣鍚庤皥浠涔堝憿錛熻嚜鐒舵槸綆楁硶闂銆傛湁涓悓浜嬭錛?/font></p> <p><font color=#800000>“鎴戜互鍓嶅湪槨愰鎵撳伐錛岄【瀹㈢粡甯哥偣闈炲父澶氱殑鐑欓ゼ銆傚簵閲岀殑楗煎ぇ灝忎笉涓錛屾垜涔?fàn)鎯湪鍒拌均N【瀹㈤キ妗屽墠錛屾妸涓鎽為ゼ鎸夌収澶у皬嬈″簭鎽嗗ソ鈥斺斿皬鐨勫湪涓婇潰錛屽ぇ鐨勫湪涓嬮潰銆傜敱浜庢垜涓鍙墜鎵樼潃鐩樺瓙錛屽彧濂界敤鍙︿竴鍙墜錛屼竴嬈℃姄浣忔渶涓婇潰鐨勫嚑鍧楅ゼ錛屾妸瀹冧滑涓婁笅棰犲掍釜涓効錛屽弽澶嶅嚑嬈′箣鍚庯紝榪欐憺鐑欓ゼ灝辨帓濂藉簭浜嗐?/font> <p><font color=#800000>鎴戝悗鏉ユ兂錛岃繖瀹為檯涓婃槸涓湁瓚g殑鎺掑簭闂錛氬亣璁炬湁<em>n</em>鍧楀ぇ灝忎笉涓鐨勭儥楗鹼紝閭f渶灝戣緲誨嚑嬈★紝鎵嶈兘杈懼埌鏈鍚庡ぇ灝忔湁搴忕殑緇撴灉鍛紵</font> <p><font color=#800000>浣犺兘鍚﹀啓鍑轟竴涓▼搴忥紝瀵逛簬<em>n</em>鍧楀ぇ灝忎笉涓鐨勭儥楗鹼紝杈撳嚭鏈浼樺寲鐨勭炕楗艱繃紼嬪憿錛?/font></p> <p>鎺掑簭闂鏄暟鎹粨鏋勫拰綆楁硶涓瘮杈冮噸瑕佺殑涓涓簡錛屼箣鍓嶅湪<a href="http://www.shnenglu.com/Fox/archive/2008/03/20/unwisdom_or_impavidity.html" target=_blank>涓綃囪鍚屼簨鎴愪負(fù)鏍囬鍏氱殑鏂囩珷</a>涓洜涓烘彁鍒版帓搴忎腑鍏充簬錛堥潪錛夌ǔ瀹氭帓搴忕殑姒傚康榪樿寰堝TX閯欒浜嗕竴鐣紝鐢氳嚦寮曟潵浜鴻韓鏀誨嚮錛岀幇鍦ㄦ兂鏉ラ兘鏈変簺鍚庢曘?/p> <p>榪欓亾棰樼洰涓鐪肩湅涓婂幓鏈鍏堣鎴戞兂鍒扮殑灞呯劧鏄偅閬撶粡鍏哥殑<a target=_blank>姹夎濉旓紙Tower of Hanoi錛?/a>闂錛堝綋鐒?dòng)灱?a target=_blank>姹夎濉?/a>涓嶇畻鎺掑簭闂錛夈?/p> <p><font color=#800000>1) 鐩鎬技鐐光槄錛?/font></p> <p>a. 閮借涓嶆柇璋冩暣浣嶇疆錛屾渶緇堝疄鐜頒粠灝忓埌澶ф帓濂斤紱</p> <p>b. 閮借鍊熷姪涓棿閲忚繘琛岃皟鏁淬?/p> <p><font color=#800000>2) 涓嶅悓澶勨槄錛?/font></p> <p>a. 姹夎濉旀湁澶氬嚭鏉ョ殑涓ゆ牴閽堬紝緲葷儥楗煎彧鏈変竴鍙墜錛屾槑紜鏄庢病鏈夌涓夊彧鎵嬶紱</p> <p>b. 姹夎濉斾竴嬈″彧鑳界Щ鍔ㄤ竴涓紝緲葷儥楗兼病闄愬埗錛?/p> <p>c. 姹夎濉旇淇濊瘉灝忕殑濮嬬粓鍦ㄤ笂闈紝緲葷儥楗兼病闄愬埗錛?/p> <p>d. 姹夎濉旂Щ鍔ㄤ箣鍓嶅氨鏈夊簭錛屾墍浠ュ叾縐誨姩嬈℃暟鏄浐瀹氱殑錛岀畻娉曠殑閫昏緫涔熷浐瀹氾紙涓嶇鏄掑綊榪樻槸鏍堟搷浣滐級錛岀炕鐑欓ゼ娌℃湁榪欎釜鍓嶆彁銆?/p> <p><font color=#800000>3) 鎶婇鐩敤紼嬪簭璇█鎻忚堪涓涓嬪惂鈽咃細(xì)</font></p> <p>a. Input : <em>n</em>.</p> <p>b. Process : generate <em>n</em> random number 0-(n-1), sortting.</p> <p>c. Output : 0, 1, ..., n-1, and move times <em>num</em>.</p> <p><font color=#800000>4) 瀛樺偍緇撴瀯鈽呪槄鈽咃細(xì)</font></p> <p>鎴戞渶寮濮嬫兂鍒扮殑鏄細(xì)榪欎竴鎽炵儥楗煎叾瀹炲氨鏄竴涓弻閾捐〃錛屾瘡緲諱竴嬈$浉褰撲簬灝嗗ご鑺傜偣H涓庢煇闈炲ご鑺傜偣N榪涜濡備笅鍙樻崲錛?/p> <p>H->next = N->next</p> <p>N->prior = H->prior = NULL</p> <p>N->next->prior = H</p> <p>濡傛灉浣跨敤鏅氱殑鍙岄摼琛紝榪欏効灝辨湁涓涓緢鏄庢樉鐨勯棶棰橈紝H鍜孨涔嬮棿鐨勬墍鏈夎妭鐐癸紙濡傛灉鏈夌殑璇濓級鐨?font color=#800000>鍓嶈秼prior鍜屽悗緇ext浜掓崲</font>浜嗭紝瀵逛簬<em>n</em>姣旇緝澶х殑鎯呭喌錛岃繖涓搷浣滄槑鏄炬氮璐規(guī)椂闂村晩錛?font color=#800000>浜ゆ崲鍓嶈秼prior鍜屽悗緇ext鍜岄鐩姹傜殑緲誨嚑嬈′技涔庝篃娌℃湁鍏崇郴鍚?/font>錛熷彧鏄垜浣滀負(fù)涓涓竴綰跨殑Coder鑰冭檻鐨勫お鍏蜂綋浜嗭級銆傚鏋滄憭寮冨墠瓚嬪拰鍚庣戶鐨勬蹇碉紝鍙堣鎬庢牱鎻忚堪鍛紵</p> <p><a target=_blank>鍞愭湞紱呭畻澶у笀闈掑師琛屾?/a>鏇捐錛?font color=#800000><strong>鍙傜涔嬪垵錛岀湅灞辨槸灞憋紝鐪嬫按鏄按錛涚鏈夋?zhèn)熸椨灱岀湅灞变笉鏄北锛岀湅姘翠笉鏄斑_(dá)紱紱呬腑褰繪偀錛岀湅灞變粛鐒跺北錛岀湅姘翠粛鐒舵槸姘?/strong></font>銆?/p> <p>淇楋細(xì)鏃ワ紝鎵偅涔堝錛屼粈涔堟剰鎬濓紵 <p>甯堬細(xì)鍓嶈秼涓嶆槸鍓嶈秼錛屽悗緇т笉鏄悗緇с? <p>淇楋細(xì)鏃ワ紝鍓嶈秼涓嶆槸鍓嶈秼錛岄毦閬撴槸鍚庣戶鍚楋紵 <p>甯堬細(xì)鐒朵篃銆? <p><font color=#800000><strong>Fox錛歄, my God錛佹暣鐐瑰疄闄呯殑鍚э紒緲昏漿涓嬈′箣鍚庯紝鍓嶈秼瑙嗕負(fù)鍚庣戶錛屽悗緇ц涓哄墠瓚嬶紝絎鏁版緲昏漿鐨勫墠瓚嬫槸鍚庣戶錛岀鍋舵暟嬈$炕杞殑鍚庣戶鏄墠瓚嬨?/strong></font> <p>鏁翠釜閾捐〃鐨勫艦鎬佸涓嬶細(xì)</p> <p>H:Head, F:First, G:F's next, B:C's prior, C:Change, D, C's next, L:Last.</p> <p>H<==>F<==>G<=...=>B<==>C<==>D<=...=>L</p> <p>F涓嶤浜ゆ崲鐨勬搷浣滃涓嬶紙Word銆丳S鐢誨浘錛夛紝n琛ㄧずnext錛宲琛ㄧずprior錛?/p> <p align=center><img src="http://lh3.ggpht.com/yulefox/SAnuzSRgEtI/AAAAAAAAAMg/EFmsyGW5lWw/s800/flapjack_before_cross.jpg"> </p> <p align=center><img src="http://lh3.ggpht.com/yulefox/SAnuySRgEsI/AAAAAAAAAMY/ncke8G_JIXo/s800/flapjack_after_cross.jpg%22" src_cetemp='http://lh3.ggpht.com/yulefox/SAnuySRgEsI/AAAAAAAAAMY/ncke8G_JIXo/s800/flapjack_after_cross.jpg"'> </p> <p>榪欓噷鍙渶瑕佷慨鏀?font color=#800000>F銆丏鑺傜偣鐨刾rior錛孒銆丆鑺傜偣鐨刵ext</font>錛屽叾浠栬妭鐐逛笉鍙樸?/p> <p>鍚庨潰鎯充簡涓涓嬶紝榪欑鏂瑰紡寰堥毦鍦ㄤ笉娣誨姞flag鎴栬呭鎹銆乸鐨勬儏鍐典笅姝e父鎿嶄綔錛屾病鏈夋壘鍒板ソ鐨勬柟娉?span style="FONT-FAMILY: wingdings">L</span>錛?font color=#800000><strong>濡傛灉浣犳湁濂界殑鏂規(guī)硶涓嶅Θ鍛婅瘔鎴?/strong></font>銆?/p> <p>鏈鍚庡彧濂戒綔緗紝浣曡嫤鍛紵鐩存帴浣跨敤鏁扮粍灝卞畬浜嗗槢<span style="FONT-FAMILY: wingdings">J</span>錛佹棦鐒舵槸鏁扮粍錛岄櫎浜嗙炕杞Щ鍔ㄩ夯鐑?chǔ)涓鐐癸紝鐞嗚В鍜屾搷浣滆繕鏄緢瀹規(guī)槗鐨勩?/p> <p>鏋滅劧涓嶆槸鎼炴暟瀛︺佺畻娉曞嚭韜殑錛屼竴涓婃潵鑰冭檻鐨勫氨鏄浣曞瓨鍌╚.^''''錛岃屼笉鏄畻娉曟湰韜?/p> <p><strong><font color=#800000>鏇村彲絎戠殑鏄紝鎵簡鍗婂ぉ錛屾渶鍚庡眳鐒惰繕鏄敤鏁扮粍</font></strong>錛?/p> <p><font color=#800000>5) 綆楁硶鍒嗘瀽鈽呪槄鈽呪槄鈽咃細(xì)</font></p> <p><strong><font color=#800000>鍐掓場鎺掑簭鎬濇兂錛?/font></strong></p> <p>鏈鍏抽敭鐨勬槸瑕佹娊璞″嚭<strong>闅忔満鏁板垪鐗瑰緛</strong>錛堝惈褰撳墠鍜岀Щ鍔ㄥ悗鏁板垪鐗瑰緛鐨勬娊璞★級錛屽茍灝介噺浣挎瘡涓嬈$炕杞?strong>鏈夋晥</strong>錛堟墍璋?strong>鏈夋晥</strong>錛屽嵆灝介噺淇濊瘉姣忎竴嬈℃搷浣滈兘鍚戞渶鍚庣殑鏈夊簭闈犺繎鑰岄潪鑳岀 錛夈?/p> <p>甯堬細(xì)瑕佷嬌澶уご鍦ㄥ悗錛屽簲浣垮ぇ澶村湪鍚庛?/p> <p>淇楋細(xì)鏃ワ紝榪欐槸浠涔堢嫍灞侀昏緫錛?/p> <p>甯堬細(xì)鍥犳灉銆傚湪鍓嶆棦鏄湪鍚庛?/p> <p>淇楋細(xì)USA, CNN錛堟搷浣犲錛夈?/p> <p>甯堬細(xì)緲昏漿銆傛棦涓嶅湪鍓嶏紝涔熶笉鍦ㄥ悗錛屼嬌涔嬪湪鍓嶏紝浣夸箣鍦ㄥ悗銆?/p> <p>淇楋細(xì)鏃ワ紝浠涔堜笢瑗匡紵鏃笉鍦ㄥ墠錛屼篃涓嶅湪鍚庯紝涓嶅墠涓嶅悗錛岄毦閬撳湪涓棿鍟婏紵</p> <p>甯堬細(xì)鐒朵篃銆?/p> <p><strong><font color=#800000>Fox錛歄, my God錛佹暣鐐瑰疄闄呯殑鍚э紒鏁翠釜榪囩▼鍒嗕負(fù)n杞紝鍦ㄧi(i=0, 1, ..., n-1)杞細(xì)</font></strong></p> <p>a. 鎵懼埌澶уご<em><strong>n-i</strong></em>錛屾槸鍚︽湁搴忥紵鏄紝杞琯錛?/p> <p>b. 鏄惁澶уご鍦ㄥ悗錛熸槸錛岃漿f錛?/p> <p>c. 鏄惁澶уご鍦ㄥ墠錛熸槸錛岃漿e錛?/p> <p>d. 灝嗛槦澶達(dá)紙絎竴涓厓绱狅級涓庡ぇ澶?strong><em>n-i</em></strong>瀵硅皟錛堝埆蹇樹簡鏄炕杞紝涓棿鍏冪礌涔熷彉搴忎簡錛夛紝++<strong><em>times</em></strong>錛?/p> <p>e. 灝嗛槦澶?strong><em>n-i</em></strong>涓庣n-i涓厓绱犲璋冿紝++<strong><em>times</em></strong>錛?/p> <p>f. ++<strong><em>i</em></strong>錛岃漿a錛?/p> <p>g. 杈撳嚭搴忓垪錛?, 1, ..., n錛夊拰緲昏漿嬈℃暟<strong><em>times</em></strong>錛汷VER:D銆?/p> <p><strong><font color=#800000>蹇熸帓搴忔濇兂錛?/font></strong></p> <p>鍦ㄦ渶寮濮嬬殑鏃跺欙紝鎴戝氨鎯沖埌浣跨敤蹇熸帓搴忕殑鎬濇兂錛屽厛浣挎暣涓暟鍒楀眬閮ㄦ湁搴忥紝鏈鍚庤皟鏁翠嬌鍏ㄩ儴鏈夊簭銆?strong><font color=#800000>鎮(zhèn)插搥鐨勬槸錛屽湪鎴戣冭檻 4 3 1 2榪欎釜鏁板垪鐨勬椂鍊欙紝鎴戞柇瀹氳繕瑕侀氳繃涓婇潰鐨勬柟寮忛噸鏂板儚鍐掓場鎺掑簭涓鏍烽噸鏂版潵榪囷紝绔嬪嵆鏀懼純鎯蟲硶錛屼簬鏄粰浜嗕笂闈㈢殑鎬濊礬錛岃屼笖鍧氬畾鐨勮涓鴻繖涓柟娉曞凡緇忓緢濂?/font></strong>銆傜粨鏋滐紝涓嬪崍GR鍛婅瘔鎴戜粬鐨勫弽渚嬶細(xì)<font color=#800000><strong>4 3 1 2 --> 2 1 3 4|--> 1 2| 3 4</strong></font>錛?#8220;|”琛ㄧず浠庤澶勭炕杞?/p> <p>鎴戝繀欏繪壙璁わ紝榪欐墠鏄ソ鐨勬柟娉曪紝鎴戣繃鍒嗘嫎娉ヤ簬涓嶅幓鏀瑰姩宸茬粡鏈夊簭鐨勯儴鍒嗐傜劧鑰岋紝榪欏浼欏彧鐭ラ亾鍙嶉┏鎴戯紝鍗存棤娉曠粰鍑虹畻娉曘?/p> <p>鎴戝彧濂借嚜宸遍噸鏂拌冭檻灞閮ㄦ湁搴忎箣鍚庣殑闂銆?/p> <p>鍗佸垎閽熷悗錛屾垜鏈変簡濡備笅鐨勭瓟妗堬紙<strong><font color=#800000>鐩墠鎴戣兘鎯沖埌鐨勬渶浣崇瓟妗?/font></strong>錛夛紝浣嗕笉寰椾笉鎵胯錛?strong><font color=#800000>琛ㄨ堪綆楁硶姣旂粰鍑轟竴縐嶆儏鍐靛搴旂殑瑙h楹葷儲(chǔ)鐨勫鐨勫鐨勫</font></strong>錛屽亣瀹欰銆丅婊¤凍<strong><font color=#800000>A==B-1</font></strong>錛屽嵆A銆丅涓虹浉閭繪暟鍒楋紙涓虹畝鍗曡錛屽厓绱犲拰鏁板垪緇熺О鏁板垪錛夈傚垯A銆丅鐨勭粍鍚堢被鍨嬫湁8縐嶏細(xì)<strong>B(O)A(O)銆丅(C)A(O)銆丅(O)A(C)銆丅(C)A(C)銆丄(C)B(O)銆丄(O)B(O)銆丄(C)B(C)銆丄(O)B(C)</strong>錛孫琛ㄧず姝e悜錛坥bverse錛塁琛ㄧず閫嗗悜錛坮everse錛夛紝浠? 2 3 4涓轟緥錛?/p> <p><font color=#800000><font color=#000000><strike>B(O)A(O)錛? 4 1 2<2></strike>銆?/font>B(C)A(O)錛? 3 1 2<4><font color=#000000>銆?/font><strong>B(O)A(C)錛? 4 2 1</strong><5></font>銆丅(C)A(C)錛? 3 2 1<7>錛?/p> <p><font color=#800000><font color=#000000><strike>A(C)B(C)錛? 1 4 3<1></strike>銆?/font>A</font><font color=#800000>(O)B(C)錛? 2 4 3<3><font color=#000000>銆?/font><strong>A(C)B(O)錛? 1 3 4</strong><6></font><font color=#000000>銆丄(O)B(O)錛? 2 3 4<8>銆?/font></p> <p>瀵瑰簲鎿嶄綔瑙勫垯濡備笅錛?/p> <p><strike>a. 0x0101: B(O)A(O) --> B(C)A(O)錛?3</strike></p> <p>b. 0x0001: B(C)A(O) --> A(C)B(O)錛?2</p> <p><font color=#800000>c. 0x0101: B(O)A(C) --> <strong>B(C)A(C)</strong>錛?</font></p> <p>d. 0x0000: B(C)A(C)錛?strong>濡傛灉褰撳墠鍙墿A銆丅涓や釜瀛愬垪</strong>錛屽垯緲昏漿涓嬈℃垚<strong><font color=#800000>A(O)B(O)1 2 3 4涓烘渶緇堢粨鏋?/font></strong>錛屽惁鍒欙紝璁や負(fù)<strong><font color=#800000>B(C)A(C)</font></strong>鍙互<strong>浣滀負(fù)涓涓嗗簭鏈夊簭鏁板垪鑰冭檻</strong>錛屾殏鏃舵棤闇緲昏漿錛?/p> <p><strike>e. 0x1010: A(C)B(C) --> A(O)B(C)錛?3</strike></p> <p>f. 0x1110: A(O)B(C) --> B(O)A(C)錛?nbsp; 2</p> <p><font color=#800000>g. 0x1011: A(C)B(O) --> <strong>A(O)B(O)</strong>錛?</font></p> <p>h. 0x1111: A(O)B(O)錛欰銆丅鍙互<strong>浣滀負(fù)涓涓湁搴忔暟鍒楄冭檻</strong>錛?strong>濡傛灉褰撳墠鍙湁A銆丅涓や釜瀛愬垪</strong>錛屽垯姝e簭搴忓垪<strong><font color=#800000>A(O)B(O)1 2 3 4涓烘渶緇堢粨鏋?/font></strong>銆?/p> <p>涓婇潰瑙勫垯鐨勫埗瀹氬叾瀹炴槸<strong>鍙嶅悜瀵煎嚭</strong>鐨勶紝閬靛驚鐨勫師鍒欐槸錛屾搴忔湁搴忕殑<strong><font color=#800000>A(O)B(O)</font></strong>鍜岄嗗簭鏈夊簭鐨?strong><font color=#800000>B(C)A(C)</font></strong>鍙互鐪嬩綔涓涓簭鍒楋紝A(C)B(O)銆丅(O)A(C)鍙竴姝ヨ揪鍒幫紝B(C)A(O)銆丄(O)B(C)鍙袱姝ヨ揪鍒幫紝B(O)A(O)銆丄(C)B(C)鍙笁姝ヨ揪鍒般傚嵆瀵逛簬4涓厓绱狅紝<strong>鏈鍧忕殑鐨凙(C)B(C)闇瑕?姝?/strong>錛堝搴斾簬涓婇潰鐨?font color=#800000>鍐掓場娉曞嵈鍙渶瑕?姝?/font><span style="FONT-FAMILY: wingdings">L</span>錛夈傝屼笖褰撳厓绱犳瘮杈冨鐨勬椂鍊欙紝璁頒綇1銆?涓湁搴忓瓙鍒楁槸鍙鐨勶紝浣嗗浜庡畬鍏ㄦ棤搴忕殑鏁板垪錛屽垎鏋愬嚭鎵鏈夋湁搴忓瓙鍒楋紝鏃笉鐜板疄錛屼篃鏃犲繀瑕併?/p> <p>淇敼瑙勫垯濡備笅錛?font color=#800000>褰?strong>闃熷ご鏃犲簭</strong>&&<strong>鐩擱偦鏁板垪鏈夊簭</strong>||<strong>闃熷ご鏈夊簭</strong>錛岀炕杞槦澶達(dá)紱鍚﹀垯錛屽皢闃熷ご榪炲悓璇ュ厓绱犱竴鍚岀炕杞?/font>銆?/p> <p>鐢辨鍙錛岃繖綆楁硶榪樿鏀硅繘錛?/p> <p>a. 鍒ゆ柇<strong><em>Array</em>[0]</strong>鏄惁姝e簭榪炵畫錛堣繛緇釜鏁?strong><em>nNum1</em></strong>錛夛紝濡傛灉<em><strong>nNum1</strong></em>==<strong><em>n</em></strong>錛岃漿i錛屽鏋?strong><em>nNum1</em></strong>!=1錛岃漿c錛?/p> <p>b. 鍒ゆ柇<strong><em>Array</em>[0]</strong>鏄惁閫嗗簭榪炵畫錛堣繛緇釜鏁?strong><em>nNum1</em></strong>錛夛紝濡傛灉<em><strong>nNum1</strong></em>==<strong><em>n</em></strong>錛岀炕杞?strong><em>Array</em></strong>錛岃漿f錛?/p> <p>c. 浠庝笅鏍?strong><em>nNum1</em></strong>寮濮嬫煡鎵?strong><em>Array</em>[0]</strong>+1錛?em><strong>bObserve</strong></em> = true錛夊拰<strong><em>Array</em>[0]-</strong>1錛?em><strong>bObserve</strong></em> = false錛夌殑涓嬫爣<strong><em>nStart2</em></strong>錛屽鏋?strong><em>nNum1</em></strong>==<strong><em>nStart2</em></strong>錛?strong><em>bOrder1</em></strong>==true錛岃漿e錛屽鏋?strong><em>nNum1</em></strong>!=1錛岀疆<strong><em>nEnd2</em></strong>=<strong><em>nStart2</em></strong>錛?/p> <p>d. 鍒ゆ柇( <em><strong>bObserve</strong></em> == true&&<strong><em>Array</em>[nStart2]</strong>+1<strong>==<em>Array</em>[nStart2+1] </strong>) || ( <em><strong>bObserve</strong></em> == false&&<strong><em>Array</em>[nStart2]==<em>Array</em>[nStart2+1]</strong>+1 )錛宼rue鍒欑疆<strong><em>nEnd2</em></strong>=<strong><em>nStart2</em></strong>錛宖alse鍒欑疆<strong><em>nEnd2</em></strong>=<strong><em>nStart2</em></strong>+1錛?/p> <p>e. 緲昏漿<strong>Array[0]</strong> to <strong>Array[nEnd2]</strong>錛岃漿a錛?/p> <p>f. 杈撳嚭<strong>Array</strong>鍙?strong>times</strong>銆?/p> <p>榪欐牱鏉ョ湅錛屾敼榪涘悗鐨勭畻娉曠珶<strong>綆鍗?/strong>浜嗚澶氾紒</p> <p>涓嶅垢鐨勬槸錛氭寜涓婇潰緇欏嚭鐨勭畻娉曠炕杞悎騫? 3 5 6 4 8 7 9 2 0錛?/p> <p><font color=#800000>1 3 5 6 4 8 7 9| </font><font color=#008000>2|</font> 0</p> <p><font color=#800000>2 9 7 8 4 6 5|</font> <font color=#008000>3|</font> 1 0</p> <p><font color=#800000>3 5 6|</font> <font color=#008000>4|</font> 8 7 9 2 1 0</p> <p><font color=#800000>4 6|</font> <font color=#008000>5|</font> 3 8 7 9 2 1 0</p> <p><font color=#800000><strong>5 6</strong>|</font> 4 3 8 7 9 2 1 0</p> <p><font color=#800000>6 5 4 3 8|</font> <font color=#008000>7|</font> 9 2 1 0</p> <p><font color=#800000>7 8 3 4 5|</font> <font color=#008000>6|</font> 9 2 1 0</p> <p>榪涘叆姝誨驚鐜簡……</p> <p>寰堟槑鏄懼簲璇ユ槸涓嬮潰榪欎釜鏍峰瓙錛?/p> <p><font color=#800000>1 3 5 6 4 8 7 9 2|</font> 0</p> <p><font color=#800000>9 8 7 4 6 5|</font> 3 1 2 0</p> <p><font color=#800000>5 6 4|</font> 7 8 9 3 1 2 0</p> <p><font color=#800000>6 5 4 7|</font> 8 9 3 1 2 0</p> <p><font color=#800000>4 5 6 7 8 9 3|</font> 1 2 0</p> <p><font color=#800000>3 4 5 6 7 8 9 1 2|</font> 0</p> <p><font color=#800000>1 9 8 7 6 5 4 3 2|</font> 0</p> <p><font color=#800000>2 3 4 5 6 7 8 9 1|</font> 0</p> <p><font color=#800000>9 8 7 6 5 4 3 2 1 0|</font></p> <p><font color=#008000><strong>0 1 2 3 4 5 6 7 8 9</strong></font></p> <p>鎵ц9嬈$炕杞傜畻娉曞浣曞緱鍒板憿錛?/p> <p>a. 紜畾鏈灝忔棤搴忓畬鏁村瓙闆?strong><em>Sn</em></strong>錛?strong><em>Sn</em></strong>涓惈<strong><em>n</em></strong>>1涓繛緇暟錛夛紱</p> <p>b. 灝?strong><em>Sn</em></strong>鏈鍓嶉潰鐨勬湁搴忓瓙闆?strong><em>So</em></strong>錛?strong><em>o</em></strong>>1錛夊姞浠ヨ冭檻錛屼竴涓瓙闆嗭紵涓や釜瀛愰泦錛?/p> <p>______________________________________________________________________________</p> <p><strong><font color=#800000>O, my God!</font></strong></p> <p>榪欎釜闂錛屼粠鍓嶅ぉ鏅氫笂鍒扮幇鍦紝鎬濊冦佸垎鏋愩佹娊璞′簡鑷沖皯鏈?5涓皬鏃朵互涓婁簡錛?/p> <p>a. Apr.18th-19th: 23:00 - 01:30</p> <p>b. Apr.19th: 11:00 - 13:00</p> <p>c. Apr.19th-20th: 22:00 - 05:30</p> <p>d. Apr.20th: 11:00 - 15:00</p> <p>緇撴灉鏄紝鍒扮幇鍦ㄦ棤娉曠粰鍑轟竴涓渶浼樼殑緲昏漿綆楁硶銆備竴涓懆鏈兘鑺卞湪榪欎笂闈簡錛?strong><font color=#800000>鍑嗗鏀懼純</font></strong><span style="FONT-FAMILY: wingdings">L</span>銆?/p> <p><a target=_blank>LP</a>鍌潃鎴戣鎴戝洖瀛︽牎錛屾槸璇ュ洖鍘諱簡錛?/p><img src ="http://www.shnenglu.com/Fox/aggbug/47659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-04-20 14:59 <a href="http://www.shnenglu.com/Fox/archive/2008/04/20/flapjack_sortting.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>濡備綍浜х敓闅忔満鏁?/title><link>http://www.shnenglu.com/Fox/archive/2008/04/15/random_number_generator.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Tue, 15 Apr 2008 06:01:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/04/15/random_number_generator.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/47118.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/04/15/random_number_generator.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/47118.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/47118.html</trackback:ping><description><![CDATA[<p>Author: Fox</p> <p> <a target="_blank">John von Neumann</a>璇達(dá)細(xì)<font color="#800000">Any one who considers arithmetical methods of producing random digits is , of course, in a state of sin.</font></p> <p>鎵浠ワ紝鍦ㄨ璁虹畻娉曞疄鐜伴殢鏈烘暟鐨勬椂鍊欙紝鎬繪槸璇粹?font color="#800000">浼殢鏈烘暟</font>鈥濄?/p> <p>鐜板湪錛屽簲鐢ㄦ渶騫跨殑闅忔満鏁扮敓鎴愮畻娉曟槸鐢?a target="_blank">Derrick Henry Lehmer</a>1951騫寸粰鍑虹殑<a target="_blank">綰挎у悓浣欐硶</a>錛?/p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽 Xn+1 = ( aXn + c ) mod m,聽 n>=0.</p> <p>鍦?a href="/Fox/archive/2008/04/03/mmorpg_security_prng.html" target="_blank">涓婁竴綃囦吉闅忔満鏁扮殑璁鴻堪</a>涓紝騫舵病鏈夌粰鍑篨0, a, c, m鐨勫彇鍊艱鍒欙紝鍙槸緇欏嚭浜?a target="_blank">ANSI C</a>鍜?a target="_blank">Microsoft Visual C++</a>鐨勫疄鐜般?/p> <p>鍦ㄨ繖鍎挎垜浠彲浠ヨ嚜宸卞厛鎬濊冧竴涓嬶紝鎴戜滑鏈熸湜浠庝笂寮忎腑寰楀埌鐨勯殢鏈烘暟搴旇婊¤凍錛?/p> <p> </p> <p>1) 涓婂紡鐨勮緭鍑鴻凍澶熼殢鏈猴紝榪欐槸鏈鍩烘湰鐨勮姹傦紱</p> <p>2) 涓婂紡緇欏嚭灝介噺澶氱殑杈撳嚭錛岃秺鎺ヨ繎m涓秺濂斤紙涓嶅彲鑳借秴榪噈錛夛紝鍗沖懆鏈熷敖閲忛暱錛屾渶濂戒負(fù)m錛岃繖鏍鋒墠鑳戒繚璇佷笂寮忔弧瓚?font color="#800000">鍧囧寑鍒嗗竷</font>錛?strike>m涓暟鍦ㄥ懆鏈焟涓悇鍑虹幇涓嬈?/strike>m涓暟鍑虹幇鐨勬鐜囩浉絳夛級錛?/p> <p>3) 涓婂紡鐨勭敓鎴愰熷害瓚沖蹇?/p> <p>鏈瀹規(guī)槗鎯沖埌鐨勶紝<font color="#800000">m鐨勫彇鍊間負(fù)璁$畻鏈哄瓧澶у皬錛堝2^32鎴?^64錛?/font>銆?/p> <p>浣嗘槸榪欏効鏈変釜寰堜弗閲嶇殑闂錛?font color="#800000">Xn浣庝綅鐨勯殢鏈烘у緢寮?/font>銆傚師鍥犲涓嬶細(xì)</p> <p>浠|m, 涓?/p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽 Yn = Xn mod d</p> <p>鍒?/p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽 Yn+1 = ( ( aXn + c ) mod m ) mod d</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 = ( aYn + c ) mod d</p> <p>涓婅堪琛ㄨ揪寮忕殑鎰忎箟鍗籌細(xì)Yn涓篨n浣巏浣嶏紙d=2^k錛夛紝榪欐牱鐨?font color="#800000">Yn搴忓垪褰㈡垚鍛ㄦ湡涓篸鐢氳嚦鏇寸煭鐨勫悓浣欏簭鍒?/font>銆備婦渚嬭鏄庯細(xì)d涓?^1鏃訛紝Yn涓篨n鐨勬渶浣庝綅錛堝彲鍋囧畾涓?鎴?錛夛紝鑻n+1 != Yn錛屽垯Yn+2 == Yn蹇呭畾鎴愮珛錛屼粎褰揳銆乧鐨嗕負(fù)濂囨暟鏃禮n銆乊n+1灝?銆?浜ゆ浛錛屽惁鍒欙紝涓哄父鏁幫紙0鎴?錛夈?/p> <p>鏆傛椂鎶涘紑闅忔満鎬т笉綆★紝鍏堟壘鍒板懆鏈熶負(fù)m鐨勯殢鏈哄簭鍒椾腑鐨勫彇鍊艱鍒欍?/p> <p> <a >Donald Knuth</a>鍦?i>The Art of Computer Programming</i>, Volume 2: <em>Seminumerical Algorithms</em>涓殑<em>3.2.1.2</em>鑺傚m, a, c鍜孹0鍙栧艱鍒欑殑琛ㄨ堪錛?/p> <p>1) gcd(c, m) = 1. 鍗?font color="#800000">c, m浜掔礌</font>錛屽啀鐧戒竴鐐癸紝c, m闄?涔嬪娌℃湁鍏朵粬鍏洜瀛愶紱</p> <p>2) 浠葷粰璐ㄦ暟p, p|m ==> p|(a-1). 鍗砿%p==0錛屽垯(a-1)%p==0銆?/p> <p>3) 4|m ==> 4|(a-1). 鍗砿%4==0錛屽垯(a-1)%4==0銆?/p> <p>榪欎釜璇佹槑榪囩▼瀵逛簬鎴戣繖鏍風(fēng)殑<font color="#800000"><a target="_blank">鏁拌</a>鍩虹</font>涓嶆槸寰堟墡瀹炵殑鎼炲簲鐢ㄦ妧鏈殑浜烘潵璇存湁鐐歸毦浠ョ悊瑙d簡銆傛湁鍏磋叮鐨勮瘽錛岃繕鏄幓鐪?em>3.2.1.2</em>鐨勮瘉鏄庡惂:-)銆?/p> <p>涓婇潰鐨勮鍒欏憡璇夋垜浠紝婊¤凍浜嗕笂榪拌鍒欏悗錛屽彲浠ヤ繚璇佸簭鍒楀懆鏈熶負(fù)m銆傚浜庡墠闈㈡彁鍒扮殑鍏充簬闅忔満鎬х殑闂錛屾棦鐒禭n浣庝綅鐨勯殢鏈烘ф瘮杈冨急錛屽彲浠ュ彧鍙?font color="#800000">Xn鐨勯珮浣?/font>浣滀負(fù)杈撳嚭銆傞珮浣嶇殑<font color="#800000">闅忔満鎬у拰緇熻鎰忎箟</font>鐢盿, c紜畾錛屽叾鍙栧兼秹鍙?font color="#800000">緇熻媯(gè)楠?/font>錛屽叿浣撶殑涔熻繕鏄湅<em>3.3</em>鍚с?/p> <p>榪欑瘒鏂囩珷瑙e喅浜?font color="#800000">鍏鋒湁緇熻鎰忎箟鐨勯殢鏈烘暟</font>鐨勯儴鍒嗙悊璁洪棶棰樸?/p> <p>PS: <a href="/Fox/archive/2008/03/06/mmorpg_net_iocp.html" target="_blank">涔嬪墠鏇劇粡BS榪嘩indows Live Writer</a>錛屽綋鏃惰寰梂riter緙栬緫鍔熻兘澶皯錛?span style="COLOR: #800000">涓嶈兘鐩存帴璁懼畾閾炬帴鏂囧瓧鐨勫瓧浣撻鑹?/span>錛岀煡閬揅SS鍙互璁懼畾涔嬪悗錛屽張瑙夊緱Word 2007緙栬緫鐨凚log杞垚html涔嬪悗澶ぇ錛岃屼笖涔熺煡閬揥ord 2007涓婇潰鏄彲浠ヨ緗摼鎺ョ殑target涓篲blank鐨勩傜幇鍦ㄥ彂鐜癢riter榪樻槸寰堜笉閿欑殑浜嗭紝鍘熸潵鏄?font color="#800000">鍙互璁懼畾鏍煎紡</font>鐨勶紝涔熷彲浠ョ洿鎺ョ紪杈慼tml錛岃屼笖鍙互Web棰勮錛岄摼鎺ヨ繕鍙互鍔犲叆鍒?font color="#800000">閾炬帴璇嶆眹琛?/font>錛屾尯鏂逛究鐨勩?/p> <p>瓚婃潵瓚婂彂鐜?a target="_blank">Wikipedia</a>鏄釜鍜?a target="_blank">Google</a>涓鏍風(fēng)殑濂戒笢瑗匡紒</p><img src ="http://www.shnenglu.com/Fox/aggbug/47118.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-04-15 14:01 <a href="http://www.shnenglu.com/Fox/archive/2008/04/15/random_number_generator.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緗戠粶娓告垙瀹夊叏鎬濊冣斺斾吉闅忔満鏁扮瘒http://www.shnenglu.com/Fox/archive/2008/04/03/mmorpg_security_prng.htmlFoxFoxWed, 02 Apr 2008 18:35:00 GMThttp://www.shnenglu.com/Fox/archive/2008/04/03/mmorpg_security_prng.htmlhttp://www.shnenglu.com/Fox/comments/46126.htmlhttp://www.shnenglu.com/Fox/archive/2008/04/03/mmorpg_security_prng.html#Feedback13http://www.shnenglu.com/Fox/comments/commentRss/46126.htmlhttp://www.shnenglu.com/Fox/services/trackbacks/46126.htmlAuthor: Fox

涓銆侀殢鏈烘暟

杞歡瀹炵幇鐨?span style="COLOR: #800000">闅忔満鏁扮敓鎴愬櫒(random number generator, RNG)鐢熸垚鐨勯殢鏈烘暟鍒楀ぇ澶氭槸鎯熷畾鏁板垪錛屽洜姝や竴鑸縐頒綔浼殢鏈烘暟(pseudorandom number, PRN)錛岃屽熀浜?span style="COLOR: #800000">鐑櫔澹?thermal noise)銆?span style="COLOR: #800000">鍏夌數(shù)鏁堝簲(photoelectric effect)銆?span style="COLOR: #800000">鏀懼皠鎬ц“鍙?radioactive disintegration)絳変笉鍙鐭ョ殑鐗╃悊鐜拌薄瀹炵幇鐨?span style="COLOR: #800000">紜歡闅忔満鏁扮敓鎴愬櫒(hardware random number generator)鐢熸垚鐨勯殢鏈烘暟鎵嶈璁や負(fù)鏄?span style="COLOR: #800000">鐪熼殢鏈烘暟(truly random number)銆侾RN鍦ㄨ綆楁満棰嗗煙涓昏鐢ㄤ簬浠跨湡(simulation)鍜屽瘑鐮佸(cryptography)銆?/span>

鏈枃浠呰璁轟吉闅忔満鏁拌蔣浠跺疄鐜扮畻娉曪紝騫朵笖浠呰璁烘弧瓚?span style="COLOR: #800000">鍧囧寑鍒嗗竷(uniform distribution, UD)鐨勪吉闅忔満鏁板彂鐢熷櫒(pseudorandom number generator, PRNG)銆?span style="COLOR: #800000">闈炲潎鍖鍒嗗竷(non-uniform distribution, NUD)鐨凱RNG鍙氳繃婊¤凍鍧囧寑鍒嗗竷鐨凱RNG涓庨潪綰挎у嚱鏁扮敓鎴愩?/p>

鏈枃璁ㄨ鐨凱RNG搴旀弧瓚充互涓嬩笁鐐癸細(xì)

a. 鍦ㄥ彇鍊肩┖闂村唴婊¤凍UD錛屽嵆絳夋鐜囧彇寰楀彇鍊肩┖闂村唴浠繪剰鍊箋?/p>

b. 鍏呭垎闅忔満錛屽嵆璇ラ殢鏈烘暟鍒楀懆鏈?period)搴斿敖閲忛暱銆傛鐐圭敱鎵璋撶殑鐔?entropy)搴﹂噺銆?/p>

c. 鍞竴杈撳叆鎴栫О縐嶅瓙(seed)瀵瑰簲鍞竴杈撳嚭PRN銆傝繖涓鐐筸s鏄綆楁満鐨勫己欏癸紝涔熸槸PRN鎯熷畾鐨勬牴婧愶紝涔熸槸綆楁硶琚牬瑙g殑鏍規(guī)簮銆?/p>

鐢變簬PRN sequence(PRNS)鎯熷畾錛屾墍浠ョ畻娉曠殑瀹夊叏鎬т富瑕佸彇鍐充簬鐔電殑閫夋嫨鍜岀畻娉曠殑澶嶆潅鎬?/span>銆?/p>

浜屻佸彲棰勬祴PRNG涓庝笉鍙嫻婸RNG

鎵璋?span style="COLOR: #800000">鍙嫻?determined)PRNG錛屼篃琚О涓虹粺璁℃剰涔変笂鐨凱RNG(statistic PRNG)錛屼竴鑸彧鏈変竴涓猻eed錛岃屽浜庡悓涓涓猻eed錛岀敓鎴愮殑PRNS鏄儫瀹氱殑銆?/p>

涓嶅彲棰勬祴(indetermined)PRNG錛屼粠鐞嗚涓婅錛屼笉鍙嫻嬬殑PRNG鏄笉瀛樺湪鐨勶紝榪欏効鎸囧瘑鐮佸瀹夊叏鐨凱RNG(cryptographically secure PRNG, CSPRNG)銆?/p>

涓夈佸父鐢≒RNGs

1銆?span style="COLOR: #800000">綰挎у悓浣欏彂鐢熷櫒(linear congruential generators, LCG)

鍗曞崥浼?/a>鍦?a target="_blank">鏍囧噯搴搑and()鍑芥暟鐨勭己闄蜂互鍙?qiáng)Blitz++闅忔満鏁扮敓鎴愮殑綆浠?/a>涓粰鍑轟簡The C Programming Langurage 2nd鐨勫疄鐜幫紝鎴戞墜澶存病鏈夎繖鏈功錛屾墍浠ユ棤浠庢煡璇侊紝FallHunter搴旇榪樻湁鍚с?/p>

聽1 unsigned聽 int 聽next聽 = 1 ;
聽2
聽3 /* 聽rand:聽return聽pseudo-random聽integer聽on聽0..32767聽 */
聽4 int 聽rand( void )
聽5 {
聽6 聽next聽 = 聽next聽 * 1103515245 + 12345 ;
聽7 return 聽(unsigned聽 int )(next / 65536 )聽 % 32768 ;
聽8 }

聽9
10 /* 聽srand:聽set聽seed聽for聽rand()聽 */
11 void 聽srand(unsigned聽 int 聽seed)
12 {
13 聽next聽 = 聽seed;
14 }

VS2003涓粰鐨勫疄鐜版槸錛?/p>

聽1 /* **
聽2 *rand.c聽-聽random聽number聽generator
聽3 *
聽4 *聽聽聽聽聽聽聽Copyright聽(c)聽Microsoft聽Corporation.聽All聽rights聽reserved.
聽5 *
聽6 *Purpose:
聽7 *聽聽聽聽聽聽聽defines聽rand(),聽srand()聽-聽random聽number聽generator
聽8 *
聽9 ****************************************************************************** */

10
11 #include聽 < cruntime.h >
12 #include聽 < mtdll.h >
13 #include聽 < stddef.h >
14 #include聽 < stdlib.h >
15
16 #ifndef聽_MT
17 static long 聽holdrand聽 = 1L ;
18 #endif 聽聽/*聽_MT聽*/
19
20 /* **
21 *void聽srand(seed)聽-聽seed聽the聽random聽number聽generator
22 *
23 *Purpose:
24 *聽聽聽聽聽聽聽Seeds聽the聽random聽number聽generator聽with聽the聽int聽given.聽聽Adapted聽from聽the
25 *聽聽聽聽聽聽聽BASIC聽random聽number聽generator.
26 *
27 *Entry:
28 *聽聽聽聽聽聽聽unsigned聽seed聽-聽seed聽to聽seed聽rand聽#聽generator聽with
29 *
30 *Exit:
31 *聽聽聽聽聽聽聽None.
32 *
33 *Exceptions:
34 *
35 ****************************************************************************** */

36
37 void 聽__cdecl聽srand聽(
38 聽聽聽聽聽聽聽聽unsigned聽 int 聽seed
39 聽聽聽聽聽聽聽聽)
40 {
41 #ifdef聽_MT
42
43 聽聽聽聽聽聽聽聽_getptd() -> _holdrand聽 = 聽(unsigned聽 long )seed;
44
45 #else 聽聽/*聽_MT聽*/
46 聽聽聽聽聽聽聽聽holdrand聽 = 聽( long )seed;
47 #endif 聽聽/*聽_MT聽*/
48 }

49
50
51 /* **
52 *int聽rand()聽-聽returns聽a聽random聽number
53 *
54 *Purpose:
55 *聽聽聽聽聽聽聽returns聽a聽pseudo-random聽number聽0聽through聽32767.
56 *
57 *Entry:
58 *聽聽聽聽聽聽聽None.
59 *
60 *Exit:
61 *聽聽聽聽聽聽聽Returns聽a聽pseudo-random聽number聽0聽through聽32767.
62 *
63 *Exceptions:
64 *
65 ****************************************************************************** */

66
67 int 聽__cdecl聽rand聽(
68 聽聽聽聽聽聽聽聽 void
69 聽聽聽聽聽聽聽聽)
70 {
71 #ifdef聽_MT
72
73 聽聽聽聽聽聽聽聽_ptiddata聽ptd聽 = 聽_getptd();
74
75 聽聽聽聽聽聽聽聽 return (聽((ptd -> _holdrand聽 = 聽ptd -> _holdrand聽 * 214013L
76 聽聽聽聽聽聽聽聽聽聽聽聽 + 2531011L )聽 >> 16 )聽 & 0x7fff 聽);
77
78 #else 聽聽/*聽_MT聽*/
79 聽聽聽聽聽聽聽聽 return (((holdrand聽 = 聽holdrand聽 * 214013L + 2531011L )聽 >> 16 )聽 & 0x7fff );
80 #endif 聽聽/*聽_MT聽*/
81 }


2銆?span style="COLOR: #800000">LFG, LFSR絳?/span>

闄愪簬綃囧箙錛屾湁鍏磋叮鐨凾X鍙互鍙傝冨悗闈㈢殑璧勬枡錛屼富瑕佹槸Wikipedia錛屼笂闈㈢粰鐨勭畻娉曡繕鏄潪甯歌緇嗙殑錛孋SPRNGs鍖呮嫭Blum Blum Shub銆丗ortuna絳夈?/p>

濡傛灉鍑轟簬瀹夊叏鎬х殑鑰冭檻錛孭RNG鐨勮緭鍑轟笉搴旂洿鎺ヤ綔涓虹瀛愩傚湪銆?span style="COLOR: #800000">鏋勫緩瀹夊叏鐨勮蔣浠?/span>銆嬩竴涔︿腑錛屼綔鑰呰涓衡?span style="COLOR: #800000">涓涓ソ鐨凱RNG鍏鋒湁榪欐牱鐨勬ц川錛氱粰瓚沖鐨勭喌錛屽嵆浣挎敾鍑昏呯煡閬撳叏閮ㄧ殑綆楁硶緇嗚妭錛岃繕鏄笉鑳界寽鍑虹敓鎴愮殑鏁版嵁嫻?/span>鈥濄?/p>

涓夈丳RNG鐨勫畨鍏ㄦ祴璇?/p>

FIPS-140鏍囧噯鍖呭惈浜嗗RNs鐨勬祴璇曡鑼冦傝繖涓爣鍑嗘垜涔熸病鏈夊幓浠旂粏鐪嬶紝鎵浠ユ病娉曠粰鍑烘洿澶氱殑淇℃伅銆傝鎻愬埌鐨勬祴璇曞寘鏈?span style="COLOR: #800000">DIEHARD銆乸Lab銆?/p>

鍥涖侀殢鏈烘暟鍦ㄦ父鎴忎腑鐨勫簲鐢?/p>

1銆?span style="COLOR: #800000">闅忔満鏁頒負(fù)娓告垙甯︽潵鏇村鐨勪笉紜畾鎬э紝涓嶇‘瀹氭т駭鐢熷彲鐜╂?/span>

榪欎釜搴旇鏄墍鏈夋父鎴忕殑鏍規(guī)湰浜嗗惂銆傛父鎴忎腑鐜╁銆佹墿銆丯PC鐨勫緢澶氬睘鎬ч兘鏄竴涓寖鍥達(dá)紝姣斿鏀誨嚮灝辨湁鏈灝忔敾鍑誨拰鏈澶ф敾鍑伙紝姣忔鐨勫疄闄呮敾鍑諱激瀹蟲誨湪浜岃呬箣闂淬?/p>

鍚屾牱鐨勶紝鐜╁涔愭涓嶇柌鐨勪竴嬈℃鈥滄礂瑁呭鈥濄佲滅榪愭皵鈥濄傚叾浠栫被鎺ㄥ惂飦娿?/p>

2銆?span style="COLOR: #800000">娓告垙鐨凙I鏇村鐨勪緷璧栦簬闅忔満鏁?/span>

濡傛灉鎬墿銆丯PC鐨凙I涓鍒囧敖鍦ㄧ帺瀹剁殑鎺屾彙涓紝娓告垙鐨勪箰瓚e氨澶уぇ闄嶄綆浜嗭紝榪欎竴鐐瑰湪鍗曟満娓告垙涓湁鐫寰堝ソ鐨勪綋鐜般俉ar3涓紝浜烘満瀵規(guī)垬錛岀數(shù)鑴戠殑鎴樻湳騫朵笉鍗曚竴錛堜絾榪樻槸鏈夎寰嬪彲寰紝浜虹被鐜╁灝氫笖濡傛錛夛紝榪欏叾涓浐鐒舵湁澶氭柟闈?鐨勫洜绱犮備絾闅忔満鏁扮殑鍔熷姵涔熶笉瀹規(guī)姽鏉銆?/p>

3銆?span style="COLOR: #800000">闅忔満鏁板噺灝戞暟鎹瓨鍌紝涓涓瀛愬彲浠ヤ唬鏇夸竴鎵規(guī)暟鎹?/span>

娓告垙涓惈鏈夊ぇ閲忔暟鎹紝濡傛灉姣忎竴欏歸兘瑕佸瓨鍙栵紝瀵規(guī)椂闂村拰絀洪棿閮芥槸涓涓冮獙銆傚浜庡満鏅腑闅忔満鐢熸垚鐨勬墿淇℃伅錛屽鏋滅粰瀹氫竴涓浉鍚岀殑縐嶅瓙銆傚憙錛屾槸涓嶆槸瑕佺畝鍗曚竴浜涘憿錛?/p>

浜斻佺浉鍏沖唴瀹?/p>

鑷充簬涓轟粈涔圥RNGs澶у浣跨敤绱犳暟錛岄渶瑕佹洿澶氱殑鏁拌鐭ヨ瘑錛屽瀵嗙爜瀛︽湁浜嗚В鐨凾X搴旇鑳藉浣撲細(xì)鍒?span style="COLOR: #800000">瀹夊叏鍜屾暟璁?/span>涔嬮棿鐨勭揣瀵嗚仈緋匯傚洜涓烘墜澶存病鏈夋暟璁虹殑涔︼紝鎵浠ヤ笉澶氬姞濡勬祴浜嗐傚埌鏃跺啓璁烘枃鐨勬椂鍊欙紝鍐嶅~鍏呬笂鍚с?/p>

鍏佸弬鑰冩枃鐚?/p>

1. 鏋勫緩瀹夊叏鐨勮蔣浠? [緹嶿John Viega, Gary McGraw. 閽熷悜緹? 鐜嬮箯 璇?聽 鍖椾含. 娓呭崕澶у鍑虹増紺? 2003.

2. Pseudorandom number generator鍙?qiáng)鐩稿叧閾炬? http://en.wikipedia.org/wiki/Pseudorandom_number_generator

3. PRNG - Pseudo-Random Number Generator. http://statmath.wu-wien.ac.at/prng/

-------------------------------------------------------------------------

PS01錛氭墜涓婄殑鍑犳湰涔?/p>

浠庡嚑浣峊X閭e効鎷跨殑鍑犳湰涔︼紝鏀懼湪妗屼笂澶у崐騫翠簡錛屼竴鐩存病鏈夋庝箞緲昏繃銆傛兂鎯沖懆鏈繕緇欎粬浠畻浜嗭紝浜庢槸灝辨嬁榪囨潵緲葷炕錛岀珛姝ゅ瓨鐓э紝濡傛灉浠ュ悗鐢ㄥ埌鐨勮瘽錛屽啀鏉ユ煡銆?/p>

a. 銆?span style="COLOR: #800000">鐢═CP/IP榪涜緗戦檯浜掕仈銆媀ol. III錛屼富瑕佹槸閽堝Linux/POSIX濂楁帴瀛楃殑C/S鏋舵瀯瀹炵幇銆傚洜涓篗MORPG鐨凜/S鏋舵瀯澶氫緷璧栦簬TCP錛屼笂闈㈢8銆?0-16绔犵殑鍐呭鍙互鍏蟲敞涓涓嬨?/p>

b. 銆?span style="COLOR: #800000">鏋勫緩瀹夊叏鐨勮蔣浠?/span>銆嬶紝涓婇潰鍏充簬寮婧愩侀棴婧愮殑鍙f按(Chap. 4)錛屽叧浜庣紦鍐插尯婧㈠嚭(Chap. 7)錛屽叧浜庨殢鏈烘暟(Chap. 10)錛屽叧浜庢暟鎹簱瀹夊叏(Chap. 14)錛屽叧浜庡鎴風(fēng)瀹夊叏(Chap. 15)錛岄兘鏄煎緱涓鐪嬬殑涓滆タ銆?/p>

c. 銆?span style="COLOR: #800000">UNIX鐜楂樼駭緙栫▼銆嬶紝榪涚▼鎺у埗(Chap. 8)銆佺嚎紼嬫帶鍒?Chap. 12)銆佽繘紼嬮氫俊(Chap. 15, 17)銆佸鎺ュ瓧(Chap. 16)銆佹暟鎹簱(Chap. 20)銆?/p>

d. 銆?span style="COLOR: #800000">UNIX緗戠粶緙栫▼銆媀ol.I錛屽鏋滄秹鍙?qiáng)鍒版硾UNIX鎿嶄綔緋葷粺涓嬬綉緇滅紪紼嬶紝鍙互褰撲綔鍙傝冧功緲匯?/p>

e. 銆?span style="COLOR: #800000">璁$畻鏈哄畨鍏ㄥ師鐞?/span>銆嬶紝鍔犲瘑(Chap. 5)銆佽璇?Chap. 6)銆佸崗璁畨鍏?Chap. 7)銆佸叆渚墊嫻?Chap. 13)銆佹伓鎰忔敾鍑?Chap. 15)銆佺伨闅炬仮澶?Chap. 19)銆?/p>

PS02錛?a target="_blank">寰蔣瀹e竷涓嶄細(xì)鎶珮鏀惰喘Yahoo浠鋒牸

娑堟伅鏉ヨ嚜Wall Street Journal錛屼笉榪囧綋澶╁彲鏄?span style="COLOR: #800000">April Fool銆?/p>

PS03錛氬叧浜?a target="_blank">Wikipedia

涓嶆槸璇?a target="_blank">Wikipedia琚鐨勫悧錛熷緢涔呮病鏈夎闂繃浜嗭紝榪欎箞濂界殑涓滆タ錛岃灝佷簡榪樻槸寰堥仐鎲劇殑銆?/p>

PS04錛氭湁闂

鍙戠幇闂錛屾壘Google錛涜В鍐抽棶棰橈紝鎵?a target="_blank">Wikipedia銆?/p>

PS05錛氭榪庤ˉ鍏?/p>

-------------------------------------------------------------------------

Added on Apr.10th

浠婂ぉ浠?a >CodeProject涓婄湅鍒頒竴綃囨枃绔?a >Applied Crypto++: Pseudo Random Number Generators)錛屼綔鑰?font color="#a52a2a">Jeffrey Walton瀵瑰瘑鐮佸鍜屽畨鍏ㄦ瘮杈冩湁鐮旂┒銆?/p>

Jeffrey Walton瀵筀nuth鐨?a >The Art of Computer Programming Vol.2涓叧浜庨殢鏈烘暟鐨勯儴鍒嗕綔浜嗘鎷?/p>

榪欑瘒鏂囩珷浠庝竴涓?font color="#a52a2a">宸ョ▼甯堢殑瑙掑害緇欏嚭浜嗛殢鏈烘暟鐨勫簲鐢ㄥ拰瀹炵幇錛屽緢鍏鋒湁鍙傝冩с?/p>

浣滆呰繕浠?a >FIPS 140-2鏍囧噯涓紩鐢ㄤ簡涓嬮潰涓孌佃瘽錛?/p>

Random Number Generators fall into one of two classes: deterministic and nondeterministic. A deterministic RNG consists of an algorithm that produces a sequence of bits from an initial value called a seed. A nondeterministic RNG produces output that is dependent on some unpredictable physical source that is outside human control.

榪欎竴孌佃瘽寰堝ソ鐨勮鏄庯紝渚濊禆浜庣畻娉曠殑RNG鎵鐢熸垚鐨勯殢鏈烘暟鍒楀彧鍙兘鏄吉闅忔満鏁幫紝鐪熼殢鏈烘暟渚濊禆浜庝笉鍙嫻嬬殑鐗╃悊婧?/font>銆?/p>

Fox 2008-04-03 02:35 鍙戣〃璇勮
]]>
MMORPG緗戠粶妯″瀷鍓栨瀽鈥斺旂綉緇滆繛鎺ュ疄渚嬪垎鏋?/title><link>http://www.shnenglu.com/Fox/archive/2008/03/28/mmorpg_network_impl_analysis.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Thu, 27 Mar 2008 17:41:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/03/28/mmorpg_network_impl_analysis.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/45569.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/03/28/mmorpg_network_impl_analysis.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/45569.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/45569.html</trackback:ping><description><![CDATA[<p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">Author: Fox </span> </p> <p> <span style="FONT-FAMILY: 瀹嬩綋"> <span style="COLOR: black">鍦ㄤ互鍓嶅啓</span> <a href="/Fox/archive/2007/12/16/game_world_architecture.html" target="_blank">MMORPG涓父鎴忎笘鐣岀殑鏋勫緩</a> <span style="COLOR: black">鏃訛紝鎻愬埌鏈嶅姟鍣ㄦ灦鏋勭殑鍒嗙被銆傚ぇ澶氭暟鎯呭喌涓嬶紝姣忎竴縐嶄笉鍚岀殑鏈嶅姟鍣ㄥ彧浼?xì)涓庡叾瀵瑰簲鐨勪竴涓湇鍔″櫒鍜屽涓鎴風(fēng)閫氫俊銆傛瘮濡傦紝GameServer(GS)鍙細(xì)涓嶹orldServer(WS)閫氫俊錛屼篃灝辨槸璇碐S鍙綔涓篧S鐨勫鎴風(fēng)銆傝繖嬈★紝鐢變簬欏圭洰闇姹傦紝鏂板鍔犱簡涓涓猄omeServer(SS)浣滀負(fù)GS鐨勬湇鍔″櫒銆?</span> </span> </p> <p> <span style="COLOR: #c00000; FONT-FAMILY: 瀹嬩綋">涓銆丼S緗戠粶榪炴帴鍒嗘瀽 </span> </p> <p> <span style="FONT-FAMILY: 瀹嬩綋"> <span style="COLOR: black">鐢變簬闇瑕佸拰澶ч噺GS寤虹珛緗戠粶榪炴帴錛屾墍浠S浣跨敤浜咺OCP妯″瀷銆傞壌浜?/span> <a href="/Fox/archive/2008/03/06/mmorpg_net_iocp.html" target="_blank">涓婁竴嬈″啓IOCP</a> <span style="COLOR: black">鏃墮伃鍒?/span> <a href="/kevinlynx/" target="_blank">Kevin</a> <span style="COLOR: black">TX鐨勯剻瑙嗭紝鎵浠ュ喅瀹氫粖澶╁鍐欎竴鐐廣係S鐨勭綉緇滄ā鍨嬪ぇ鑷村涓嬶細(xì) </span> </span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">0銆佹湇鍔″櫒涓葷嚎紼嬪惎鍔紱 </span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">1銆佸垵濮嬪寲Winsock錛孲DK func: WSAStartup ()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">2銆佸垱寤轟竴涓嬌鐢╫verlapped I/O鐨剆ocket錛孲DK func: WSASocket()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">3銆佺粦瀹氱鍙o紝灝嗘湰鍦板湴鍧涓庡垱寤虹殑socket鍏寵仈璧鋒潵錛孲DK func: bind()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">4銆佸垱寤篒OCP瀵硅薄錛孲DK func: CreateIoCompletionPort()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">5銆佸垱寤哄伐浣滆呯嚎紼嬶紝CreateWorkerThreads()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">6銆佸紑濮嬬洃鍚紝SDK func: listen()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">7銆佹帴鍙楀鎴風(fēng)榪炴帴錛孲DK func: WSAAccept()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">8銆佸綋鏈夋柊鐨勮繛鎺ヨ姹傚埌杈炬椂錛屽皢WSAAccept榪斿洖鐨勫搴旂殑瀹㈡埛绔痵ocket鍏寵仈鍒癐OCP錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">9銆佸鐞哤SASend() or WSARecv()銆?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">鍦ㄥ疄闄呭鐞嗘椂錛屽彲鑳戒細(xì)鏍規(guī)嵁闇瑕佸緩绔嬮澶栫殑綰跨▼澶勭悊socketopt鍛戒護(hù)錛岀敋鑷沖緩绔嬩笓闂ㄥ鐞哤SAccept鐨勭嚎紼嬨?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">鍏充簬宸ヤ綔鑰呯嚎紼媁orkerThread錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">閫氳繃GetQueuedCompletionStatus()錛岃幏鍙朓/O綾誨瀷鍜屽搴旂殑socket錛屽鏋滀負(fù)鎺ユ敹鍒欓氱煡鎺ユ敹瀹屾垚騫剁戶緇柊鐨刉SARecv()錛屽鏋滀負(fù)鍙戦佸垯閫氱煡鍙戦佸畬鎴愩?</span> </p> <p> <span style="COLOR: #c00000; FONT-FAMILY: 瀹嬩綋">浜屻丟S緗戠粶榪炴帴鍒嗘瀽 </span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">GS涓婂浜嶴S瀹㈡埛绔噰鐢ㄧ殑鏄疻SAEventSelect妯″瀷錛岄氳繃緗戠粶浜嬩歡瑙﹀彂鐩稿簲鎿嶄綔銆?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">0銆佹湇鍔″櫒涓葷嚎紼嬪惎鍔紱 </span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">1銆佸垵濮嬪寲Winsock錛孲DK func: WSAStartup ()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">2銆佸垱寤轟竴涓嬌鐢╫verlapped I/O鐨剆ocket錛孲DK func: WSASocket()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">4銆佺粦瀹氱鍙o紝灝嗘湰鍦板湴鍧涓庡垱寤虹殑socket鍏寵仈璧鋒潵錛孲DK func: bind()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">5銆佸垱寤虹綉緇滀簨浠訛紝SDK func: CreateEvent()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">6銆佽緗綉緇滀簨浠剁殑鍝嶅簲錛孲DK func: WSAEventSelect()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">7銆佺瓑寰呯綉緇滀簨浠訛紝SDK func: WSAWaitForMultipleEvents()錛?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">8銆佸垎鏋愮綉緇滀簨浠剁被鍨嬪茍澶勭悊錛孲DK func: WSAEnumNetworkEvents()銆?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">榪欓噷涔嬫墍浠ラ噰鐢–reateEvent鑰屼笉鏄疻SACreateEvent錛屾槸鍥犱負(fù)鐢盋reateEvent鍒涘緩鐨勪簨浠跺厑璁鎬負(fù)auto reset鐨勶紝鑰學(xué)SACreateEvent鍒涘緩鐨勪簨浠舵槸manually reset鐨勩?</span> </p> <p> <span style="COLOR: #c00000; FONT-FAMILY: 瀹嬩綋">涓夈佸疄鐜拌繃紼嬩腑鐨勫皬鎻掓洸 </span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">鍦℅S鐨勫鎴風(fēng)瀹炵幇涓亣鍒板嚑涓棶棰樸?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">棣栧厛鏄湪娑堟伅澶勭悊涓婏紝GS鍙戝埌SS鐨勬秷鎭紝SS騫舵病鏈夊畬鍏ㄦ帴鍙楀埌錛岃孲S鍙戦佸埌GS鐨勬秷鎭竴鍒囨甯搞傚悗鏉ヨ窡浜嗕竴涓婼S娑堟伅闃熷垪錛屽彂鐜癝S灞呯劧鍙互鏀跺埌GS鍙戦佸埌WS鐨勬秷鎭紒鐒跺悗灝卞湪GS涓婃壘鍘熷洜錛屽師鏉ユ槸WS鍦ㄥ拰SS鍏辯敤娑堟伅闃熷垪錛屼互鍓岹S鍙搴斾竴涓湇鍔″櫒錛屾棤鎵璋撳叡鐢ㄣ傜幇鍦ㄥ姞浜哠S錛岃嚜鐒惰鍒嗗紑澶勭悊錛屽惁鍒橶S鍜孲S閮藉彲鑳芥敹鍒板彂緇欏鏂圭殑娑堟伅銆?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">鍚庨潰涓涓猙ug浠庡懆涓寮濮嬪凡緇忓己濂鎬簡鎴戝洓澶╀簡銆傚嵆浣縎S宸茬粡鍏抽棴錛學(xué)SAEnumNetworkEvents榪斿洖鐨勪簨浠跺搴擣D_CONNECT鐨刬ErrorCode鍊煎緇堜負(fù)0銆傚洜涓轟腑闂存秹鍙?qiáng)鍒板绾拷E嬪拰澶氫釜鏈嶅姟鍣ㄥ垎鍒搴旂殑瀹㈡埛绔紝榪炴帴鍒癢S鐨勬病鏈夐棶棰橈紝灝辨槸SS鐨勫鎴風(fēng)鏈夐棶棰樸傚埌浠婂ぉ涓婂崍涓烘錛屾垜宸茬粡鎶奊S鐨勭綉緇滃鐞嗛昏緫鍏ㄩ儴闈欐佸垎鏋愪簡涓閬嶏紝娌℃湁浠諱綍鍙戠幇銆備復(fù)榪戜腑鍗堝悆楗殑鏃跺欙紝涓嶅緱宸插彧濂界敤WS鐨勫鎴風(fēng)socket鍘昏繛鎺S錛屽眳鐒跺嚭鐜板悓鏍烽棶棰橈紒鑰屾垜鐨刉S鍜孲S閮芥槸鏀懼湪鎴戞満鍣ㄤ笂鐨勶紝榪欐牱鏉ョ湅錛屽氨鍙湁绔彛涓嶅悓浜嗭紒 </span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">鏋滅劧錛屽綋鎴戞妸SS鐨勭洃鍚鍙d慨鏀逛箣鍚庯紝闂瑙e喅浜嗐傚洜涓烘垜鏄嬌鐢?088绔彛鐩戝惉GS榪炴帴鐨勩傚綋鎴戞妸绔彛鎹㈡垚80錛屽悓鏍烽棶棰樺啀嬈″嚭鐜幫紝鑰屼笖SS鏃犳硶閫氳繃80绔彛鐩戝惉銆?</span> </p> <p> <span style="COLOR: black; FONT-FAMILY: 瀹嬩綋">鎺ヤ笅鏉ユ彁鍑犱釜闂錛?</span> </p> <p> <span style="FONT-FAMILY: 瀹嬩綋"> <span style="COLOR: black">1銆?/span> <span style="COLOR: #c00000">琚崱宸存柉鍩虹洃鎺х殑绔彛8088鍜屾湇鍔″櫒寮鍚殑鐩戝惉绔彛8088鏈変粈涔堣仈緋伙紵涓轟粈涔堟病鏈夊啿紿侊紵鍗″反浠呬粎鍙槸浠庤绔彛鑾峰彇鏁版嵁鍚楋紵涓轟粈涔堢綉緇滀簨浠剁殑FD_CONNECT鐨勫搴攊ErrorCode涓?錛堣〃鏄庤繛鎺ユ垚鍔燂級錛?/span> <span style="COLOR: black"> </span> </span> </p> <p> <span style="FONT-FAMILY: 瀹嬩綋"> <span style="COLOR: black">2銆?/span> <span style="COLOR: #c00000">80鏄父瑙刪ttp绔彛錛屽畠涓?080銆?088榪欎簺http绔彛鐨勫尯鍒湪鍝効錛熻繖浜涚鍙g粦瀹氭垚鍔熶笌鍚︾殑鍘熷垯鏄粈涔堬紵</span> <span style="COLOR: black"> </span> </span> </p> <p>聽</p> <p> <span style="FONT-FAMILY: 瀹嬩綋"> <span style="COLOR: black">PS錛氭枃涓叧浜嶪OCP鍜學(xué)SAEventSelect妯″瀷鏇翠負(fù)璇︾粏鐨勫疄鐜幫紝鍙互鍙傝?/span> <a target="_blank">Network Programming for Microsoft Windows 2<sup>nd</sup></a> <span style="COLOR: black">鐨勭浜旂珷錛歐insock I/O Methods銆?/span> </span> </p> <p> <span style="FONT-FAMILY: 瀹嬩綋">鏈鍚庡啓瀹屼簡錛屽彂瑙夎嚜宸卞啓鐨勫緢鍨冨溇錛屽畬鍏ㄥ氨鏄嫻佹按甯愩傝漿蹇典竴鎯籌紝涓轟粈涔堝憿錛熻嚜宸卞熀紜涓嶆墡瀹炲槢錛岀涓嬈℃帴瑙OCP鍜岀綉緇滄ā鍨嬶紝涔熷氨榪欐牱浜嗐?</span> </p> <p> <span style="FONT-FAMILY: 瀹嬩綋">浠婂ぉ澶櫄浜嗭紝瑕佺潯浜嗭紝涓婇潰鐨勯棶棰樻槑澶╁啀鑰冭檻鍚?/span> <span style="FONT-FAMILY: Wingdings">J</span> <span style="FONT-FAMILY: 瀹嬩綋">銆?/span> </p><img src ="http://www.shnenglu.com/Fox/aggbug/45569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-03-28 01:41 <a href="http://www.shnenglu.com/Fox/archive/2008/03/28/mmorpg_network_impl_analysis.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓嶆曟棤鐭ワ紝浣嗘曟棤鐣?/title><link>http://www.shnenglu.com/Fox/archive/2008/03/20/unwisdom_or_impavidity.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Thu, 20 Mar 2008 13:17:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/03/20/unwisdom_or_impavidity.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/44970.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/03/20/unwisdom_or_impavidity.html#Feedback</comments><slash:comments>48</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/44970.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/44970.html</trackback:ping><description><![CDATA[<p>Author: Fox</p> <p>鏄ㄥぉ瓚婁繋浠e簴闈㈣瘯浜嗕竴涓浼欍?</p> <p>鐪嬪畬浜嗕粬鐨勭瑪璇曢鐩紝鎰熻鍚庤儗鏈夌偣鍑夛紝浣嗚繖浜涗笢瑗跨湅鐪嬩篃灝辮繃鍘諱簡錛岃瀹炶瘽錛岄偅浜汣++鐨勯鐩灝?span style="COLOR: #c00000">鏈夌偣BT</span>銆?</p> <p>浣嗘垜涓鐩磋寰桪S鐨勪笢瑗匡紝濡傛灉浣犲綋鍒濆鐨勬椂鍊欐槸寰堣鐪熷涔?fàn)杩囼q舵濊冭繃鐨勶紝鍏跺疄鏄笉闇瑕佸幓璁板繂鐨勶紝鎵浠ユ垜灝遍棶浜嗕竴涓叧浜?span style="COLOR: #c00000">紼沖畾鎺掑簭鍜屼笉紼沖畾鎺掑簭</span>鐨勯棶棰樸傛垜鎯籌紝鍙浣犵悊瑙d簡鍚勭鎺掑簭綆楁硶鐨勬濇兂錛屽緢easy銆?</p> <p>鍙槸榪欏摜浠効蹇樿浜嗕粈涔堟槸紼沖畾鎺掑簭錛屾垜榪樹互涓轟粬鎶婂揩閫熸帓搴忋佸爢鎺掑簭褰撲綔紼沖畾鎺掑簭鍙槸娌¤浣忋傜湅鏉ワ紝鑰佸笀浠庡皬鏁欒偛鐨?<span style="COLOR: #c00000">涓閬撻鐩綘鍗充嬌涓嶄細(xì)涔熻灝介噺鍘葷瓟</span>"榪欑鎬濇兂閬楁瘨棰囨繁銆傚鏋滄姳鐫榪欑鎬濇兂鍋氱▼搴忓憳錛屽叕鍙稿鍗婅鍨帀銆?</p> <p>鎯充竴鎯崇ǔ瀹氭帓搴忕殑姒傚康鍚э細(xì)涓や釜鍚屽煎厓绱狅紙涓嶇煡涓轟粈涔堬紝鎴戜竴鐩磋寰?a target="_blank">涓ヨ佸笀涔︿笂</a>鐢ㄧ殑鏄?9錛岀湅鏉ユ垜榪樻槸鍦?span style="COLOR: #c00000">璇繪涔?/span>銆?span style="COLOR: #c00000">姝昏涔?/span>錛屾渶鍚庡彲鑳戒細(xì)<span style="COLOR: #c00000">璇諱功姝?/span><span style="FONT-FAMILY: Wingdings">L</span>錛夊湪鎺掑簭鍓嶅悗鐩稿浣嶇疆淇濇寔涓嶅彉錛屽嵆鏈潵鍦ㄥ墠闈㈢殑榪樺湪鍓嶉潰錛堟墍璋?<span style="COLOR: #c00000">灝樺綊灝橈紝鍦熷綊鍦?/span>"錛岀湅鏉ユ渶榪戞濇兂鏈夌偣娑堟瀬錛岄毦鎬病鏈夋縺鎯?span style="FONT-FAMILY: Wingdings">L</span>錛夈傚啀鎯蟲兂鍚勭鎺掑簭鐨勬濇兂錛屾垜浠緢瀹規(guī)槗寰楀埌榪欐牱鐨勭粨璁猴細(xì)鏈鏅氱殑O(n<sup>2</sup>)鐨勭畻娉曪紝涓涓竴涓粠鍓嶆瘮鍒板悗錛岃嚜鐒朵笉浼?xì)濯?jiǎng)鍝嶅埌鍚屽煎厓绱犵殑鐩稿浣嶇疆錛岃孫(nlogn)鐨勭畻娉曪紝鐢變簬澶氳礬姣旇緝錛屽彲鑳藉鑷存湰鏉ョ浉瀵逛綅浜庡悗闈㈢殑鍏冪礌鍏堟瘮杈冨拰縐誨姩錛岄犳垚涓嶇ǔ瀹氥傝繖鏍蜂竴鎯籌紝鑷劧鐭ラ亾綆鍗曠殑鎻掑叆銆侀夋嫨銆佸綊騫舵帓搴忛兘鏄ǔ瀹氱殑錛岃屾敼榪涚殑楂樻晥鐜囩殑綆楁硶鍒欎笉紼沖畾銆?</p> <p>鍚庨潰鍙︿竴涓悓浜嬪湪璇㈤棶浠栧仛鐨凞emo鐨勪簨鎯咃紝鍥犱負(fù)鏄疍X鐨勪笢瑗匡紝鎴戜笉鎳傦紝娌℃彃鍢達(dá)紝灝遍殢渚跨湅浠栫殑綆鍘嗐?</p> <p>鐪嬪埌鍏朵腑涓欏癸紝鏈夋彁鍒頒粬鏇劇粡緇欏ぇ涓銆佸ぇ浜岀殑瀛︾敓鍋氳繃C++鍩硅銆傛垜鏈病鎵撶畻鎻愪粬絎旇瘯涓殑C++閮ㄥ垎鐨勶紝浣嗘棦鐒舵浘緇忎負(fù)浜哄笀琛紙鍥犱負(fù)鎴戞浘緇忓仛榪囧鐢熴佷篃鍋氳繃鑰佸笀錛夛紝C++鍩虹鎺屾彙鍒拌繖縐嶇▼搴﹀氨涓嶅浜嗐傚挨鍏跺浜庝竴涓┖鐨凜++綾婚粯璁ょ敓鎴愬摢浜涙垚鍛樺嚱鏁板眳鐒跺啓鐨勪竴濉岀硦娑傦紙<span style="COLOR: #c00000">鍙嬫儏鎻愮ず錛氫綘涔熶笉鐢˙S浠栵紝濡傛灉浣犳病鏈夌湅榪嘗ippman鐨勩?/span><a target="_blank">Inside of the C++ Object Model</a><span style="COLOR: #c00000">銆嬶紝寤鴻浣犲厛涓嶈鍙戣█<span style="FONT-FAMILY: Wingdings">J</span></span>錛夈?</p> <p>鎴戜竴鑸璇█鐗規(guī)т笉澶暍鍙戣〃瑙傜偣錛堝洜涓烘垜鐨凜++鍩虹涓嶆墡瀹?span style="FONT-FAMILY: Wingdings">L</span>錛夛紝浣嗘垜瀵圭畝鍗曠殑綆楁硶鎴栨濇兂灝忔湁鍏磋叮錛堟病鏈変綘鎯寵薄涓偅涔堥珮錛夈傚彲鏄紝絎旇瘯涓敮涓鐨勪竴涓渶瑕乧oding鐨勯鐩粬鍙堟病鍐欍傛垜鍙ソ璇達(dá)紝C++鐨勪笢瑗夸綘鎺屾彙鎬庝箞鏍鋒垜涔熷彲浠ヤ笉鐪嬶紝浣嗚繖涓猰emcpy鐨勫疄鐜幫紝浣犳庝箞涔熷緱鏈夌偣鎯蟲硶鍚э紵涓嶇劧鎬庝箞鍘誨啓浠g爜鍛紵鍒氬ソ鍦ㄩ潰浠栦箣鍓嶏紝榪樺拰鍚屼簨璁ㄨ榪噈emcpy鐨勯棶棰橈紙濡傛灉浣犵粰鍑?span style="COLOR: #c00000">one byte by one byte</span>鐨勫疄鐜頒細(xì)閬瑽S鐨?span style="FONT-FAMILY: Wingdings">J</span>錛屽洜涓轟綘灞呯劧娌℃湁鑰冭檻榪囪綆楁満緋葷粺鏈韓鐨勬暟鎹鐞嗭級銆?</p> <p>鏈潵榪樻兂闂粬涓涓叧浜?a href="/qiujian5628/archive/2008/02/29/43477.html" target="_blank">sizeof()鐨勯棶棰?/a>錛屽悗鏉ヨ寰椾篃娌′粈涔堝繀瑕侊紝鍏充簬<span style="COLOR: #c00000"><span style="FONT-FAMILY: Verdana">union</span><span style="FONT-FAMILY: 瀹嬩綋">鐨勫榻愶紝瑕佹寜鐓у崟浣嶆渶闀跨殑鎴愬憳瀵歸綈</span></span><span style="FONT-FAMILY: 瀹嬩綋">榪欎竴鐐硅嚜宸遍兘瑙夊緱鏈夌偣</span>BT灝辯畻浜嗐?</p> <p>鍏跺疄錛屾垜鎯寵鐨勬槸錛屽緢澶氫笢瑗匡紝浣犱笉鑳借涓轟綘鎺屾彙鐨勫緢濂斤紙闄ら潪浣犵湡鐨勬帉鎻$殑寰堝ソ錛夛紝鎵璋撳緢濂斤紝鎷緾++鏉ヨ錛屽氨鏄妸浣犺涓轟綘濂界殑鍦版柟錛屼綘鍙互涓嶇炕鍏朵粬涓滆タ錛屾妸瀹冨啓涓嬫潵錛屽熀鏈窡ISO C++淇濇寔90%浠ヤ笂鐨勭浉浼煎害灝卞彲浠ヤ簡銆傚綋鐒?dòng)灱寴q欐牱璇存湁鐐硅幢浜嗐?</p> <p>姣曠珶錛屽仛娓告垙紼嬪簭鍛橈紙鍏朵粬涔熷樊涓嶅鍚э級闇瑕佺殑鏄細(xì) </p> <p> <span style="COLOR: #c00000">甯︾潃嬋鎯呭幓緙栫爜錛屽甫鐫铏氬績鍘誨涔?fàn)锛屽甫鐫鎸戞垬鍘諱氦嫻侊紝甯︾潃鍘嬪姏鍘誨伐浣溿?</span> </p> <p>嬋鎯咃紝鑳借浣犵殑鎬濈淮婊″叿鍒涙剰錛屼唬鐮佹瀬鍏墮閫革紱 </p> <p>铏氬績錛岃兘璁╀綘鐨勭煡璇嗕笉鏂Н绱紝浠庤岃揪鍒板帤縐杽鍙戯紱 </p> <p>鎸戞垬錛岃兘璁╀綘鐨勫洟闃熷厖婊℃椿鍔涳紝浜ゆ祦媧繪臣涓ヨ皚錛?</p> <p>鍘嬪姏錛岃兘璁╀綘鐨勫績鎬佷繚鎸佸鉤琛★紝鑳滀笉濡勫枩錛岃觸涓嶆兌棣併?span style="TEXT-DECORATION: underline"></span></p> <p>鍥犱負(fù)鑷繁榪欎袱鍛ㄥ績鎬佸彈鍒?span style="COLOR: #c00000">闈炴櫤鍔涘洜绱?/span>騫叉壈錛屾棩瀛愯繃寰楁湁鐐?span style="COLOR: #c00000">嫻戝櫓</span>銆傚啓涓嬫潵錛屼富瑕佹槸涓轟簡鏀炬澗涓涓嬶紝涔熸彁閱掕嚜宸便?</p> <p> <span style="COLOR: #c00000">涓嶆曟棤鐭ワ紝浣嗘曟棤鐣忋?/span> <br /> <br />-----------------------------------------------------------------<br /><br />PS錛氳ˉ璁頒簬2008/03/26<br /><br />榪樻槸鎶婁笂鍗堝啓鐨勪竴涓猰ymemcpy鏀句笂鏉ュ惂銆傞噷闈㈡病鏈夊des < src + len鐨勯噸鍙犳儏鍐佃繘琛岃璁猴紝鍥犱負(fù)澶ц嚧google浜嗕竴涓嬶紝浼間箮寰堝皯浜鴻繖鏍峰仛錛堝掍笉鏄洜涓轟笉鑳藉疄鐜幫級銆?/p> <p>void *mymemcpy( void *src, void *des, size_t len )<br />{<br />聽char *tempsrc = (char *)src;<br />聽char *tempdes = (char *)des;</p> <p>聽size_t offset = len / 4;<br />聽for( size_t i=0; i<offset; ++i )<br />聽{<br />聽聽*(unsigned long *)tempdes = *(unsigned long *)tempsrc;<br />聽聽tempdes += sizeof(unsigned long);<br />聽聽tempsrc += sizeof(unsigned long);<br />聽}<br />聽<br />聽offset = len - len % 4;<br />聽for( size_t i=0; i<offset; ++i )<br />聽{<br />聽聽*tempdes++ = *tempsrc++;<br />聽}<br />聽return des;<br />}</p> <p>鍒氭墠鎯蟲眰璇佷竴涓媘emcpy鍦ㄥ湴鍧閲嶅彔鐨勬儏鍐典笅錛屾槸鍚︿細(xì)鑰冭檻浠庡悗寰鍓峜opy鐨勬儏鍐點(diǎn)傜粨鏋滅湅鍒?a target="_blank">浜戦鐨刡log涓婂緢鏃╃殑涓綃囨枃绔?/a>錛屼篃鏄memcpy鐨勶紝瑙掑害涓嶅悓銆?/p> <p>鎴戞兂婢勬竻涓鐐癸紝鎴戝啓榪欑瘒blog鐨勫垵琛峰彧鏄葷粨鍑犱釜鎶鏈棶棰橈紝鍥犳灝辨病鏈夋妸闈㈣瘯鐨勫墠鍥犲悗鏋滆涓涓嬶紝鍙嶅掕寰堝鏈嬪弸璇В錛屼互涓烘垜鎬庝箞鎬庝箞鏍蜂簡銆?/p> <p>浜嬪疄鎯呭喌鏄紝榪欏嚑涓棶棰橀兘鏄湰鏉ョ殑絎旇瘯棰樼洰褰撲腑鐨勶紝闈㈣瘯鐨凾X浠庝笂鍗?0:00鍓嶅悗鍋氬埌11:30榪囷紝絳夋垜鍜屽彟涓涓悓浜?3鐐硅繃鍘葷殑鏃跺欙紝鎴戜竴鐩存病鎬庝箞璇磋瘽銆傚彧鏄湪涓杈圭湅浠栫殑綆鍘嗗拰棰樼洰錛屾枃涓凡緇忚浜嗭紝鏄湅鍒頒粬鐨勭畝鍘嗕箣鍚庢墠鎻愮殑闂銆傚綋鏃舵槸鏈?0閬撳乏鍙崇殑C++棰樼洰錛屼粬鍋氬鐨勫叾瀹炲彧鏈変竴閬撱?/p> <p>鑰屼笖錛屾垜鍦ㄦ彁闂鐨勬椂鍊欎篃閮藉皢闂璺熶粬涓璧峰垎鏋愪簡鐨勶紙闄や簡memcpy涔嬪錛夛紝鑷垜鎰熻璇磋瘽榪樻槸寰堝緱浣撶殑錛屽啓鏂囩珷鐨勯鏍兼槸鍙︿竴鐮佷簨鍎褲?/p> <p>鎴戞病鏈変笣姣灖涓嶈搗榪欎綅TX鐨勬剰鎬濓紝涔熷畬鍏ㄦ病鏈夋樉鎽嗙殑鎯蟲硶銆?/p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"> <span lang="EN-US"> <font face="Calibri">PS</font> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 瀹嬩綋; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">錛氬拷鐒舵兂鍒拌嚜宸辨渶榪戜負(fù)浠涔?span style="COLOR: #c00000">鐧栨у崄瓚?/span>錛屽洜涓烘渶榪戝湪鍏蟲敞<span style="COLOR: #c00000">涓涓浼欑殑</span></span> <span lang="EN-US" style="COLOR: #c00000"> <font face="Calibri">Blog</font> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 瀹嬩綋; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">錛屽鏋滀笉渚墊潈錛屾垜鎯崇敤鐢ㄤ粬鐨?/span> <span lang="EN-US"> <font face="Calibri">Blog</font> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 瀹嬩綋; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">鐨勫悕瀛椼?/span> <a >涓嶈鑱旀兂</a> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 瀹嬩綋; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">銆嬶紝浣滆呮槸<span style="COLOR: #c00000">甯︿笁涓〃</span>鐨?span style="COLOR: #c00000">鐜嬪皬宄?/span>錛堛婁笁鑱旂敓媧誨懆鍒娿嬭鑰咃級銆傛墍浠ワ紝濡傛灉鏈変漢鎯蟲媿鎴戯紝寤鴻鍏堢湅鐪嬩粬鐨勪笢瑗匡紝<span style="COLOR: #c00000">瀛︿範(fàn)涓涓嬫帾杈?/span></span> <span lang="EN-US" style="COLOR: #c00000; FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"> <span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</span> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 瀹嬩綋; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">銆備竴涓悓浜嬶紝璇村ぉ娑篃琛岋紝鎴戜釜浜鴻寰楀ぉ娑湁鐐圭浉浜掑惞鎹х殑鍛抽亾銆?/span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 瀹嬩綋; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">鎭跺績錛屼絾娌℃湁鎭舵剰</span> <span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"> <span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</span> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 瀹嬩綋; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">銆?/span> </p><img src ="http://www.shnenglu.com/Fox/aggbug/44970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-03-20 21:17 <a href="http://www.shnenglu.com/Fox/archive/2008/03/20/unwisdom_or_impavidity.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MMORPG緗戠粶妯″瀷鍓栨瀽鈥斺擨OCP綃?/title><link>http://www.shnenglu.com/Fox/archive/2008/03/06/mmorpg_net_iocp.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Wed, 05 Mar 2008 17:18:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/03/06/mmorpg_net_iocp.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/43783.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/03/06/mmorpg_net_iocp.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/43783.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/43783.html</trackback:ping><description><![CDATA[<p> <span style="FONT-FAMILY: Verdana">Author: Fox </span> </p> <p> <span style="COLOR: green; FONT-FAMILY: Verdana">//-----------------------------------------------------------------------------------------------------<br /></span> <span style="COLOR: darkgreen">澶滄繁浜嗭紝闅忎究鍐欏啓鈥︹?span style="FONT-FAMILY: Verdana"><br /></span></span> <span style="COLOR: green; FONT-FAMILY: Verdana">//-----------------------------------------------------------------------------------------------------</span> </p> <p>澶у嚒瀛﹁繃緙栫▼璇█鍜岀綉緇滅殑TX搴旇閮藉啓榪囪嚜宸辯殑鑱婂ぉ紼嬪簭錛岄偅鏃跺欏ぇ瀹墮兘鐭ラ亾浜嗗鎺ュ瓧鎬庝箞<span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: Arial">select</span><span style="FONT-FAMILY: 瀹嬩綋">銆?/span><span style="FONT-FAMILY: Arial">connect</span><span style="FONT-FAMILY: 瀹嬩綋">銆?/span><span style="FONT-FAMILY: Arial">bind</span><span style="FONT-FAMILY: 瀹嬩綋">銆?/span><span style="FONT-FAMILY: Arial">listen</span><span style="FONT-FAMILY: 瀹嬩綋">銆?/span><span style="FONT-FAMILY: Arial">accept</span><span style="FONT-FAMILY: 瀹嬩綋">銆?/span><span style="FONT-FAMILY: Arial">send</span><span style="FONT-FAMILY: 瀹嬩綋">銆?/span><span style="FONT-FAMILY: Arial">recv</span><span style="FONT-FAMILY: 瀹嬩綋">錛屼篃鐭ラ亾浜?/span><span style="FONT-FAMILY: Arial">TCP</span><span style="FONT-FAMILY: 瀹嬩綋">鍜?/span><span style="FONT-FAMILY: Arial">UDP</span></span><span style="FONT-FAMILY: 瀹嬩綋"><span style="FONT-SIZE: 10pt">鐨勫尯鍒?/span>鈥︹︾◢寰敤鍔熺殑</span>TX鎴栬榪樺啓榪囧浜鴻亰澶╃▼搴忥紝鐭ラ亾浜嗕粈涔堟槸闃誨I/O錛岀湡姝h嚧鍔涗簬鍚慟Q銆丮SN絳夊嵆鏃惰亰澶╁伐鍏烽潬榻愮殑澶х墰瀵規(guī)湰鏂囨彁鍒扮殑IOCP鏇存槸浜嗙劧浜庤兏銆傛洿澶氱殑TX鎴栬呮湁鍏磋叮緇х畫鐪嬩笅鍘匯?</p> <p>涓銆侀樆濉濱/O錛堜富瑕佹寚TCP錛?</p> <p>1銆佸綋socket鐨剅ecv buff涓虹┖鏃訛紝榪涚▼浼?xì)wait鐩村埌鏂版暟鎹埌杈撅紱 </p> <p>2銆佸綋socket鐨剆end buff宸叉弧鏃訛紝榪涚▼浼?xì)wait鐩村埌絀洪棿瓚沖錛?</p> <p>3銆佸綋socket鐨刟ccept娌℃湁鏂拌繛鎺ュ埌杈撅紝榪涚▼浼?xì)wait鐩村埌鏂拌繛鎺ュ埌杈撅紱 </p> <p>4銆佸綋socket鐨刢onnect娌℃湁鏀跺埌ACK錛岃繘紼嬩細(xì)wait鐩村埌鏀跺埌ACK銆?</p> <p>鑰岄潪闃誨I/O鍒欐槸鑷村姏浜庢彁渚涢珮鏁堢殑寮傛I/O銆?</p> <p>浜屻両OCP錛?span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: Arial">I/O Completion Port</span><span style="FONT-FAMILY: 瀹嬩綋">錛?/span><span style="FONT-FAMILY: Arial">I/O</span></span><span style="FONT-FAMILY: 瀹嬩綋"><span style="FONT-SIZE: 10pt">瀹屾垚绔彛</span>錛?/span></p> <p>IOCP鏄疢S鎻愪緵鐨刉indows鍐呮牳瀵硅薄錛屽唴閮ㄤ嬌鐢ㄧ嚎紼嬫睜綆$悊錛屽茍鏍規(guī)嵁CPU鐨勪釜鏁扮‘瀹氱嚎紼嬩釜鏁般傚綋鏁版嵁鍒拌揪鍚庯紝緇熶竴鎶曢掑埌鍞竴鐨処OCP闃熷垪錛屽搴旂殑鑻ュ共宸ヤ綔綰跨▼鐢ㄤ簬澶勭悊榪欎簺鏁版嵁錛屼粠鑰屽疄鐜伴潪闃誨寮傛I/O銆?</p> <p>綆鍗曚簡瑙d簡IOCP鐨勫姛鑳藉拰鍘熺悊錛屼笅闈㈡彁渚涘嚑鐐圭嚎绱紝渚涙湁鍏磋叮鐨凾X鏁寸悊鎬濈華<span style="FONT-FAMILY: Wingdings">J</span>銆?</p> <p>1銆丱VERLAPPED緇撴瀯錛?</p> <p>2銆丆reateIoCompletioPort錛氱敤浜庡垱寤篒OCP錛屽叧鑱旇繛鎺ユ潵鐨剆ocket鍙ユ焺錛岀敤浜庢帴鏀舵暟鎹紱 </p> <p>3銆丟etQueuedCompletionStatus錛氫緵宸ヤ綔綰跨▼璋冪敤錛屽彇鍒版暟鎹殑綰跨▼浼?xì)鍔犲叆I/O瀹屾垚闃熷垪錛孖OCP鐨勭嚎紼嬫睜綆$悊榪欎簺宸ヤ綔綰跨▼銆?</p> <p>涓夈佹繁鍏ュ涔?fàn)鍜屼娇鐢?</p> <p>1銆丣effrey Richter鐨?a target="_blank">銆夾dvanced Windows銆?/a>錛岀15绔狅紝璋佺湅璋佺煡閬?span style="FONT-FAMILY: Wingdings">J</span>錛?</p> <p>2銆丣im Beveridge & Robert Wiener鐨?a target="_blank">銆奙ultithreading Applications in Win32銆?/a>錛岀6绔狅紝璋佺湅璋佺煡閬?span style="FONT-FAMILY: Wingdings">J</span>錛?</p> <p>3銆?a target="_blank">Google</a>銆?</p> <p> <span style="COLOR: green; FONT-FAMILY: Verdana">//-----------------------------------------------------------------------------------------------------<br /></span> <span style="COLOR: darkgreen">鎰熻鐢∣ffice 2007緙栬緫鍜屽彂甯傿log姣擫ive Writer瑕佹柟渚垮緢澶氾紝涓昏鏄疞ive Writer鐨勭紪杈戝姛鑳藉お灝戜簡錛屽鏋?007鑳藉瀵歸摼鎺ヨ繘琛宼arget璁劇疆錛?br />鍐嶆敮鎸丒ntryName灝眕erfact浜?span style="FONT-FAMILY: Wingdings">J</span>銆?br /><span style="FONT-FAMILY: 瀹嬩綋">浠庢柊鍏徃鍥炴潵錛岃繕娌℃湁瀹屽叏閫傚簲榪欒竟瀹芥澗鐨勭幆澧冿紝榪欏嚑澶╁ソ浼兼ⅵ娓鎬竴鑸紝鍏堟槸</span><span style="FONT-FAMILY: Verdana">IE</span><span style="FONT-FAMILY: 瀹嬩綋">鍑洪棶棰橈紝</span><span style="FONT-FAMILY: Verdana">Ghost</span><span style="FONT-FAMILY: 瀹嬩綋">浜嗕竴閬擄紝鍚庨潰鏄?/span><span style="FONT-FAMILY: Verdana">Outlook</span><span style="FONT-FAMILY: 瀹嬩綋">鏀墮偖浠跺嚭闂銆?/span><span style="FONT-FAMILY: Verdana"><br /></span><span style="FONT-FAMILY: 瀹嬩綋">榪樻槸澶滄繁浜洪潤鐨勬椂鍊欙紝涓涓漢鐕冪潃鐑熴佸惉鐫姝屻佸枬鐫鑼躲佹暡鐫閿洏鏈夋劅瑙夆︹?/span><span style="FONT-FAMILY: Verdana"><br /></span></span> <span style="COLOR: green; FONT-FAMILY: Verdana">//-----------------------------------------------------------------------------------------------------</span> </p><img src ="http://www.shnenglu.com/Fox/aggbug/43783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-03-06 01:18 <a href="http://www.shnenglu.com/Fox/archive/2008/03/06/mmorpg_net_iocp.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緗戠粶娓告垙瀹夊叏鎬濊冣斺擨PSec綃?/title><link>http://www.shnenglu.com/Fox/archive/2008/02/28/game_security_ipsec.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Thu, 28 Feb 2008 12:54:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/02/28/game_security_ipsec.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/43411.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/02/28/game_security_ipsec.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/43411.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/43411.html</trackback:ping><description><![CDATA[<p>Author: Fox </p> <p> <span style="COLOR: green">//-----------------------------------------------------------------------------------------------------<br />鍏充簬鍙嶅鎸傦紝榪欎袱澶╁湪鍜屽嚑浣嶅悓浜嬪拰緗戝弸璁ㄨ鐨勭粨鏋滀緷鐒舵槸錛屾洿澶氱殑瑕佷粠絳栧垝瑙掑害瑙e喅鈥︹?br />//----------------------------------------------------------------------------------------------------- </span> </p> <p>鏈榪戝湪鑰冭檻瀹夊叏闂鐨勬椂鍊欙紝鍦ㄣ婃父鎴忕紪紼嬬簿綺?銆嬩腑鐪嬪埌Pete Isensee鐨勩婂畨鍏ㄥ鎺ュ瓧銆嬶紙鍗抽氬父鎵璇寸殑Secure Socket Layer, SSL鎶鏈級錛屽張Google浜嗕竴浜汭PSec鐨勭浉鍏寵祫鏂欍傚敖綆PSec鏄儴緗插湪IP灞傜殑鍗忚錛屼絾瀹冭繕鏄彲浠ヤ負(fù)鎴戜滑鎻愪緵涓浜涙濊礬銆?</p> <p>涓銆両PSec鐨勮璇佸畨鍏紙AH+ESP錛?</p> <p>1銆佷笉鍙惁璁ゆэ細(xì)閲囩敤鍏挜鍔犲瘑鐨勬暟瀛楃鍚嶅叿鏈夋姉鎶佃禆鎬с?</p> <p>2銆侀槻姝㈡姤鏂囬噸鏀撅細(xì)浣跨敤搴忓垪鍙峰拰婊戝姩紿楀彛浠ヤ繚璇佹暟鎹寘鐨勫敮涓鎬э紝鍗充嬌鏁版嵁鍖呰鎴幏閲嶅彂錛屼篃浼?xì)鍥犲簭鍒楀忥L(fēng)殑鐩稿悓鎴栬呴敊璇岃鎶涘純銆?</p> <p>3銆佸畬鏁存э細(xì)IPSec浣跨敤鍗曠嫭鐨勯壌鍒ご閮紙Authentication Header, AH錛変俊鎭繘琛屾牎楠岋紝闃叉鎶ユ枃綃℃敼錛屾牎楠岀殑綆楁硶涓昏鏄疢D5銆丼HA-1絳夊崟鍚戝搱甯岀畻娉曘?</p> <p>4銆佸彲闈犳э細(xì)閫氳繃鍔犲瘑灝佽瀹夊叏鏈夋晥杞借嵎錛圗ncapsulating Security Payload, ESP錛夛紝IPSec瀵逛紶杈撴暟鎹繘琛屼繚鎶わ紝鍔犲瘑綆楁硶闄や簡MD5銆丼HA-1錛岃繕鏈夊姞瀵嗗潡閾炬帴錛圕ipher Block Chaining, CBC錛夋ā寮忓姞瀵嗙畻娉曠瓑銆?</p> <p>浜屻両PSec鐨勬暟鎹姞瀵?</p> <p>鍦ㄦ暟鎹姞瀵嗕笂錛孖PSec浣跨敤鐨勪富瑕佹槸DES錛圖ata Encryption Standard錛夊拰3DES錛圱riple Data Encryption Standard錛夌畻娉曘?</p> <p>涓夈両PSec鐨勫瘑閽ョ鐞?</p> <p>涓轟簡淇濊瘉鏁版嵁浼犺緭瀹夊叏錛孖PSec浣跨敤鐢盜KE錛圛nternet Key Exchange錛夋彁渚涚殑鍔ㄦ佸瘑閽ユ洿鏂版満鍒訛紝Diffie-Hellman綆楁硶鎻愪緵瀵嗛挜鐢熸垚絳栫暐錛岄氫俊涓ょ闇瑕佺淮鎸佷竴涓畨鍏ㄥ叧鑱旓紙Security Association錛夛紝涓轟袱绔氫俊鎸囧畾璁よ瘉鍙?qiáng)鍔犲瘑鎵鐢ㄧ畻娉曞拰瀵嗛挜錛屽茍鎻愪緵搴忓垪鍙峰拰婊戝姩紿楀彛絳夈?</p> <p>闇瑕佹敞鎰忕殑鏄紝IPSec騫舵病鏈夋彁渚涙暟鎹駭鐢熷埌鍙戦佷箣鍓嶇殑淇濇姢鏈哄埗銆備婦渚嬫潵璇達(dá)紝灝辨槸IPSec鍙互鍦ㄦ渶澶х▼搴︿笂淇濊瘉浣犺緭鍏ョ殑甯愬彿瀵嗙爜鍦ㄤ紶杈撹繃紼嬩腑鐨勫畨鍏紝浣嗗茍涓嶈兘闃叉閽撻奔杞歡鍜屽叾浠栨湪椹湪浣犺緭鍏ヨ繖浜涗俊鎭椂琚埅鑾?span style="FONT-FAMILY: Wingdings">L</span>錛岄偅搴旇鏄綘瑕佹敞鎰忕殑銆?</p> <p>瀵笽PSec鏈夊叴瓚g殑TX鍙互鍒?a >http://www.ietf.org</a>涓婁笅杞界浉鍏崇殑RFC鏂囨。鐮旂┒鐮旂┒<span style="FONT-SIZE: 9pt; FONT-FAMILY: Wingdings">J</span>銆?</p> <p> <span style="COLOR: green">//-----------------------------------------------------------------------------------------------------<br />鏈互涓烘墜涓婂伐浣滃畬鎴愶紝鍙互鍋鋒椂闂寸湅鐪嬪畨鍏ㄦ柟闈㈢殑涓滆タ錛屼笉鏇炬兂Joe鍙堝垎涓嬩簡鏂頒換鍔?span style="FONT-FAMILY: Wingdings">L</span>鈥︹?br />//-----------------------------------------------------------------------------------------------------</span> </p><img src ="http://www.shnenglu.com/Fox/aggbug/43411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-02-28 20:54 <a href="http://www.shnenglu.com/Fox/archive/2008/02/28/game_security_ipsec.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緗戠粶娓告垙瀹夊叏鎬濊冣斺斿弽澶栨寕綃?/title><link>http://www.shnenglu.com/Fox/archive/2008/02/26/game_security_anti_cheat.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Tue, 26 Feb 2008 08:04:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/02/26/game_security_anti_cheat.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/43266.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/02/26/game_security_anti_cheat.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/43266.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/43266.html</trackback:ping><description><![CDATA[<p>Author: Fox </p> <p> <span style="COLOR: green">//-----------------------------------------------------------------------------------------------------<br />姝ょ瘒浠呮槸瀵瑰弽鑴辨満澶栨寕鐨勪竴鐐規(guī)濊冿紝鍏朵粬瀹夊叏闂濡傜櫥褰曢獙璇併佹秷鎭獙璇佺瓑鏇村鐨勬槸娑夊強(qiáng)閫昏緫鍔熻兘銆?br />//----------------------------------------------------------------------------------------------------- </span> </p> <p>鏄ヨ妭鍒氬洖鏉ョ殑鏃跺欙紝鍥炲叕鍙稿幓鍜孲oft鑱婂埌浜嗚嚜宸辯殑姣曚笟璁烘枃鐨勯棶棰橈紝鍥犱負(fù)涓撲笟鐨勫叧緋伙紝鎴戝繀欏葷粰鍑轟竴浜涘畨鍏ㄦ柟闈㈢殑鑰冭檻錛屾鏄洜涓鴻繖涓鐐癸紝鎴戝綋鏃跺紑棰樻椂灝辯珛瓚沖瀹夊叏鐨勬棤緙濇父鎴忎笘鐣岃繘琛屾濊冦傚彧鏄湪娓告垙鏈韓鐨勫畨鍏ㄦт笂錛屼竴鐩翠篃娌℃湁涓涓ソ鐨勫嚭鍙戠偣錛岃繖涓ゅ懆榪樻槸鍦ㄨ冭檻榪欎釜闂銆?</p> <p>榪欎竴鐐癸紝鏈夋垜鍏ヨ鏃墮棿涓嶉暱錛屽浜庢父鎴忔湰韜佺帺瀹朵笌寮鍙戣咃紙鍚父鎴忓強(qiáng)澶栨寕銆佹湪椹紑鍙戣咃級涔嬮棿鐨勫叧緋誨茍娌℃湁涓涓緢濂界殑鎶婃彙錛屾洿澶氱殑鏄敱浜庢垜瀵規(guī)父鎴忎腑鐨勫彲鐢ㄧ殑瀹夊叏鎶鏈笉浜嗚В錛屽挨鍏舵槸瀵瑰簲鐢ㄥ眰瀹夊叏鍗忚涓嶄簡瑙o紝瀵圭牬瑙f妧鏈篃涓嶄簡瑙o紝瀵艱嚧鏃犳墍閫備粠銆?</p> <p>銆婃父鎴忕紪紼嬬簿綺?銆嬩腑Andrew Kirmse鍦ㄣ婂湪綰挎父鎴忕殑緗戠粶鍗忚銆嬩竴鏂囦腑瀵瑰父瑙佺殑綃℃敼鎶ユ枃銆佹姤鏂囬噸鏀懼拰閫嗗悜宸ョ▼鏈夎榪般傞闃叉姤鏂囩鏀圭殑鏈夋晥闃插盡鏄搱甯屾牎楠岋紝鐜板湪澶у娓告垙鏄嬌鐢∕D5綆楁硶錛岃屼笖緗戜笂寮婧愮殑MD5浠g爜涔熷緢澶氥傚浜庢姤鏂囬噸鏀撅紝Andrew鎻愬埌浜嗕嬌鐢ㄧ嚎鎬у彔鍔犻殢鏈烘暟鐨勭姸鎬佹満錛屽叿浣撳師鐞嗗拰瀹炵幇鏂瑰紡鍥犱負(fù)娌℃湁鎻愬埌澶緇嗭紝榪樿閽堝瀹為檯搴旂敤緇х畫瀛︿範(fàn)<span style="FONT-FAMILY: Wingdings">L</span>銆傜劧鑰岋紝鐢變簬瀹㈡埛绔棦鏄姤鏂囩殑鎺ユ敹鑰呬篃鏄彂閫佽咃紝鍥犳錛屽鎴風(fēng)鍖呮嫭浜嗗畬鏁寸殑鍔犺В瀵嗙畻娉曘備竴鏃﹀鎴風(fēng)琚嗗悜錛屼笂榪版帾鏂藉氨鍙樻垚浜嗙牬瑙h呰儗鍚庣殑鐑熼浘寮癸紝瀹屽叏澶卞幓鎰忎箟銆?</p> <p>鎻愬埌鍙嶅鎸傦紝Joe鐨勭湅娉曚篃鏄榪欎釜涓滆タ鍜屽叿浣撴煇涓涓妧鏈叧緋諱笉澶э紝榪樻槸瑕佷粠鏈哄埗涓婂幓鐪嬨傚姞涓嶅姞瀵嗗浜庢櫘閫氱帺瀹舵病鏈夋剰涔夛紝瀵逛簬涓撲笟浠庝簨閫嗗悜鐨勪漢鏇存槸涔熸病鏈夋剰涔夛紝鎵鏈夊崟綰冭檻鍔犲瘑鏄病鏈夋晥鏋滅殑銆傚浜庡厤璐規(guī)父鎴忥紝澶栨寕寰寰鏄墦閽卞叕鍙哥殑宸ュ叿錛屼綘灝佷粬鐨勫彿錛屼粬鍐嶅緩灝辨槸浜嗭紝浠d環(huán)鍑犱箮涓?錛岃屼竴鑸粯璐規(guī)父鎴忥紙鍍忛瓟鍏戒笘鐣岋級涓涓笎鍙峰搴斾竴涓狢DKey錛屼竴涓狢DKey灝辮鍑犲崄鍧楅挶錛岃繖涓皝璧鋒潵灝辨湁鐐瑰挰鐗欎簡銆?</p> <p>璇村埌榪欓噷錛屼笉濡ㄦ崲涓濊礬錛氫負(fù)鍏嶈垂娓告垙鍔犲叆CDKey銆傛垜涓嬈炬父鎴忎粠鍐呮祴銆佸皝嫻嬪埌鍏祴錛岃鐜╁鍏呭垎鍙備笌浣撻獙錛屽湪琚嗗悜涓斿鎸傛í琛屼箣鍓嶏紝鎸夋甯擱昏緫榪愯惀銆傝繘鑰屽亣瀹氭垜榪欎竴嬈炬父鎴忓湪鍏祴涔嬪悗錛岃鐜╁鎰熻欖呭姏鍗佽凍銆傚紩瀵肩帺瀹跺茍瀹炴柦CDKey錛屼竴涓狢DKey澶х害浼?xì)闇瑕佺帺瀹朵粯鍑轟簺璁窶oney浠ョず璇氭剰錛屽湪鐜╁娓告垙榪囩▼涓紝浼?xì)闃秾D墊у悜鐜╁璧犻侀儴鍒嗗鍊奸亾鍏楓傝佺帺瀹跺湪榪涘叆鏂板尯鏃訛紝闇瑕佺敵璇風(fēng)戶緇嬌鐢ㄥ師CDKey銆傝繖鏍蜂竴鏉ワ紝澶栨寕灝變笉浼?xì)鑲嗘棤蹇屾儺浜嗐?</p> <p>BTW錛岃繖涓濊礬娌℃湁浠庢妧鏈搴﹁В鍐抽棶棰橈紝涓嬮潰鍐嶆潵鐪嬩竴縐嶇暐寰叧涔庢妧鏈疄鐜扮殑瑙e喅鏂規(guī)錛氬姩鎬侀獙璇併傚湪娓告垙榪愯鏈熼棿錛屼細(xì)<span style="COLOR: red">涓嶅畾鏈熺殑鍚戠帺瀹跺彂閫侀獙璇佺爜</span>錛屽鎴風(fēng)鍦ㄦ敹鍒版秷鎭悗錛屽繀欏?span style="COLOR: red">鍦ㄤ竴瀹氭椂闂村唴鍝嶅簲</span>錛屽悜鏈嶅姟鍣ㄧ‘璁ゆ敹鍒扮殑楠岃瘉鐮侊紝鍚﹀垯灝嗚<span style="COLOR: red">寮哄埗涓嬬嚎</span>錛屽啀嬈$櫥褰曞悗灝?span style="COLOR: red">鏇村姞棰戠箒鐨勬敹鍒伴獙璇佺爜</span>錛岀洿鍒扮敤鍏惰壇濂界殑鍥炲嬈℃暟绱Н<span style="COLOR: red">娑堥櫎鍏朵笉鑹褰?/span>涓烘銆備負(fù)浜嗗敖閲忓噺灝戝洜姝ょ粰鐜╁閫犳垚鐨勪笉鍙嬪ソ浣撻獙錛屽湪浠誨姟鍦烘櫙銆侀噸瑕丳K鍦烘櫙鎴栬呴珮絳夌駭鐜╁媧誨姩鍦烘櫙錛岄獙璇佺爜鐨勫彂閫佸拰紜鍙?span style="COLOR: red">閫傚綋鏀懼</span>銆?</p> <p>褰撶劧錛屽鏋滃鎸備腑鍔犲叆浜嗗浘褰㈣瘑鍒紝榪欎竴鎷涗篃鏈繀濂忔晥銆?</p> <p>涓嶇煡鏄亾楂樿繕鏄瓟楂橈紝鍙互鑲畾鐨勪竴鐐規(guī)槸錛氬ぇ瀹墮兘鏄湪鍒╃泭鐨勯┍鍔ㄤ笅緇炲敖鑴戞眮銆?</p> <p> <span style="COLOR: green">//-----------------------------------------------------------------------------------------------------<br />鏄ヨ妭鍥炴潵涔嬪悗錛屼竴鐩存瘮杈冨繖錛堢‘鍒囩殑璇存槸姣旇緝鎳掞級錛屾病鏈夋洿鏂幫紝瀹滄洿鍔犲嫟濂嬨?br />鏈榪戝伐浣滄秹鍙?qiáng)鍒版暟鎹簱缂柦E嬶紝涓鐐圭偣瀵規(guī)暟鎹簱鐨勮鍐欏眳鐒惰楁帀鎴?澶╂椂闂達(dá)紝姹楋紒<br />//-----------------------------------------------------------------------------------------------------</span> </p><img src ="http://www.shnenglu.com/Fox/aggbug/43266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-02-26 16:04 <a href="http://www.shnenglu.com/Fox/archive/2008/02/26/game_security_anti_cheat.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>寮傛鍥炶皟鐨勪竴縐嶅皝瑁呪斺旂畫http://www.shnenglu.com/Fox/archive/2008/01/25/asny_callback_ex.htmlFoxFoxFri, 25 Jan 2008 03:27:00 GMThttp://www.shnenglu.com/Fox/archive/2008/01/25/asny_callback_ex.htmlhttp://www.shnenglu.com/Fox/comments/41873.htmlhttp://www.shnenglu.com/Fox/archive/2008/01/25/asny_callback_ex.html#Feedback0http://www.shnenglu.com/Fox/comments/commentRss/41873.htmlhttp://www.shnenglu.com/Fox/services/trackbacks/41873.htmlAuthor: Fox

緇堜簬璧跺湪鍛ㄦ湯涔嬪墠璋冮氫簡錛岀幇鍦ㄦ潵鎬葷粨涓涓嬫垜榪欎釜欏圭洰涓浜庡紓姝ュ洖璋冪殑搴旂敤鑳屾櫙銆?/p>

榪欎釜欏圭洰鐨勫唴瀹瑰氨鏄湪娓告垙涓嬌鐢ㄧ涓夋柟搴撲負(fù)鎵鏈夌帺瀹舵彁渚涙洿濂界殑鏈嶅姟錛屽綋server鍚姩鍚庯紝鍔犺澆dll錛屽垵濮嬪寲璇ユā鍧楋紝褰搒erver閫鍑烘椂錛岀粨鏉熸ā鍧楀姛鑳斤紝鍗歌澆dll銆?/p>

褰撶帺瀹舵彁鍑鴻姹傚悗錛宻erver鍦╩ain thread涓氳繃lib杞彂鐜╁璇鋒眰錛宭ib澶勭悊瀹屾瘯錛屽湪鍏剁嫭绔媡hread涓洖璋僺erver涓哄叾瀹炵幇鐨刢allback function銆傛鏃訛紝server闇瑕佸皢榪斿洖鐨剅esult杞埌main thread涓result鍙?qiáng)鍏剁浉鍏崇殑鐜╁鏁版嵁杩涜澶勭悊銆?/p>

絎笁鏂瑰簱鐨勯渶姹傛槸寰堟槑紜殑錛屽湪鍚堥傜殑鍦版柟鍙戦佽姹傦紝鍦ㄥ悎閫傜殑鍦版柟澶勭悊鍝嶅簲銆?/p>

Joe瀵規(guī)垜鐨勮姹備篃鏄緢鏄庣‘鐨勶紝鍝嶅簲澶勭悊鏃墮噰鐢╯erver褰撳墠鏋舵瀯(榪欎釜鏋舵瀯鍦?a href="/Fox/archive/2008/01/23/asny_callback.html" target="_blank">涓婁竴綃囨枃涓?/a>鏈夋彁鍒?錛屼嬌鎴戠殑緙栫爜涓嶆秹鍙?qiáng)鋼Q浣曟父鎴忓姛鑳介昏緫澶勭悊錛屽茍浣挎暣涓鐞嗘祦紼嬬粏鑺傚鍚庣畫搴旂敤寮鍙戦忔槑銆?/p>

浜岃呯粨鍚堣搗鏉ワ紝灝變負(fù)榪欎釜欏圭洰铻嶅叆鏁翠釜server鐨勬灦鏋勬彁渚涗簡瀹岀編鐨勯渶姹傦紝涔熶負(fù)鎴戠殑緙栫爜鎻愪緵浜嗘渶灝忛檺搴︾殑閫夋嫨絀洪棿:(錛屽ソ澶勬槸鍚庣畫鍔熻兘寮鍙戝彲浠ュ畬鍏ㄦ棤瑙嗘垜鐨勭紪鐮侊紝鍙渶瀹炵幇瀵瑰洖璋冨搷搴斿悗鐨勫姛鑳斤紝鍙湁server搴曞眰鐭ユ?zhèn)夊浣曡皟鐢ㄣ?/p>

緇欏嚭搴忓垪鍥撅細(xì)

uml_asny_callback

涓轟簡淇濇寔瀵逛笂灞傚紑鍙戦忔槑錛孫nCallback闇瑕佸皝瑁呫?/p>

//-------------------------------------------------------------------------------
// 涓騫存潵錛屾垜涓昏鍙備笌浜嗕袱嬈炬父鎴忥紝紜垏鐨勮鏄崐騫達(dá)紝鍓嶉潰鍗婂勾騫舵病鏈夌湡姝f秹鍙?qiáng)杩愯惀漶斿搧鐨勫紑鍙戯紝鍙槸鍋氬伐鍏楓?br />// 鐜板湪榪欎釜妯″潡鏄垜鍋氱殑鏈蹇紝涔熸槸鍘嬪姏鏈澶х殑涓涓傜幇鍦ㄦ兂鏉ワ紝鍘熷洜鍦ㄤ簬姝ゆā鍧楁秹鍙?qiáng)鍒版父鎴忎富閫昏緫搴曞眰鍜?br />// 絎笁鏂瑰姩鎬侀摼鎺ュ簱鐨勯氫俊鍙?qiáng)澶勭悊銆?br />// 鍦ㄧ煭鐭嚑澶╃殑鏃墮棿鍐呰浣犵殑璁捐婊¤凍絎笁鏂瑰簱鐨勫簲鐢ㄩ渶姹傚茍絎﹀悎娓告垙鑷韓搴曞眰閫昏緫鐨勮璁¢鏍鹼紝鐨勭‘鏈変簺鐥涜嫤錛?br />// 濂藉湪鏈塉oe鐨勬寚鐐癸紝璁╂垜鍦ㄥ畬鎴愬伐浣滅殑鍚屾椂鍙堝鍒頒簡涓浜涙柟娉?)銆?br />//-------------------------------------------------------------------------------



Fox 2008-01-25 11:27 鍙戣〃璇勮
]]>
寮傛鍥炶皟鐨勪竴縐嶅皝瑁?/title><link>http://www.shnenglu.com/Fox/archive/2008/01/23/asny_callback.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Wed, 23 Jan 2008 03:04:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/01/23/asny_callback.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/41699.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/01/23/asny_callback.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/41699.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/41699.html</trackback:ping><description><![CDATA[<p>Author: Fox</p> <p>鍓嶆鏃墮棿鍐欒繃涓綃?a href="/Fox/archive/2008/01/10/multithread_security.html/" target="_blank">鍏充簬綰跨▼瀹夊叏</a>鐨勬枃瀛楋紝鏈塗X瑙夊緱涓嶆繁鍏ャ傚洜涓烘湰鏉ュ氨娌℃兂鍐欑殑澶叿浣擄紝鍙槸闅忎究璇磋錛屼粖澶╁氨鎯寵鐐瑰叿浣撶殑鎶鏈?/p> <p> <font color="#006400">//-------------------------------------------------------------------------------<br />// 鍔ㄦ侀摼鎺ュ簱 (Dynamic Link Library)</font> </p> <p>1) 鍔ㄦ侀摼鎺ワ紱</p> <p>2) 璺ㄨ璦錛?/p> <p>3) Win32騫沖彴鍙敤錛?/p> <p> </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">聽1</span>聽<span style="COLOR: #008000">//</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #008000">聽闈欐侀摼鎺ュ簱.h鏂囦歡涓鍑芥暟鐨勫0鏄庯細(xì)<br /></span> <span style="COLOR: #008080">聽2</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">聽dllExam.h</span></font> </font> <span style="COLOR: #008000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">聽3</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #0000ff">extern</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">聽</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">聽</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">__stdcall</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000">聽Func(聽</span><span style="COLOR: #0000ff">int</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">聽nParam聽);<br /></span> <span style="COLOR: #008080">聽4</span>聽 </font> </font> <span style="COLOR: #000000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">聽5</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #008000">聽鍔ㄦ侀摼鎺ュ簱.h鏂囦歡涓鍑芥暟鐨勫0鏄庯細(xì)<br /></span> <span style="COLOR: #008080">聽6</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">聽dllExam.h</span></font> </font> <span style="COLOR: #008000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">聽7</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #0000ff">extern</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">聽</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">聽__declspec(聽dllexport聽)聽</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">__stdcall</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000">聽Func(聽</span><span style="COLOR: #0000ff">int</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">聽nParam聽);<br /></span> <span style="COLOR: #008080">聽8</span>聽 </font> </font> <span style="COLOR: #000000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">聽9</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">聽鍔ㄦ侀摼鎺ュ簱鐨勯潤鎬佽皟鐢細(xì)</span></font> </font> <span style="COLOR: #008000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">10</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #000000">#pragma聽comment(lib,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dllExam.lib</span><span style="COLOR: #000000">"</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">)聽<br /></span> <span style="COLOR: #008080">11</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">extern</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">聽__declspec(dllimport)聽</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">__stdcall</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000">聽Func(聽</span><span style="COLOR: #0000ff">int</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">聽nParam聽);<br /></span> <span style="COLOR: #008080">12</span>聽 </font> </font> <span style="COLOR: #000000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">13</span>聽<span style="COLOR: #000000">dllFun(</span><span style="COLOR: #000000">0</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">14</span>聽 </font> </font> <span style="COLOR: #000000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">15</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #008000">聽鍔ㄦ侀摼鎺ュ簱鐨勫姩鎬佽皟鐢細(xì)<br /></span> <span style="COLOR: #008080">16</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">聽useDllExam.cpp</span></font> </font> <span style="COLOR: #008000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">17</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #000000">typedef聽</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">(</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">__stdcall</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">CallFun聽)(聽</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽);聽聽聽聽</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">聽瀹忓畾涔夛紝鏂逛究浣跨敤</span></font> </font> <span style="COLOR: #008000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">18</span>聽<span style="COLOR: #008000"></span></font> </font> <span style="COLOR: #000000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">19</span>聽<span style="COLOR: #000000">HINSTANCE聽hDll;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">聽DLL鍙ユ焺</span></font> </font> <span style="COLOR: #008000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">20</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #000000">CallFun聽dllFun;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">聽搴撳嚱鏁版寚閽?/span></font> </font> <span style="COLOR: #008000"> <br /> </span> <font face="Courier New"> <font size="2"> <span style="COLOR: #008080">21</span>聽<span style="COLOR: #008000"></span><span style="COLOR: #000000">hDll聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽LoadLibrary(聽</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dllExam.dll</span><span style="COLOR: #000000">"</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">聽);<br /></span> <span style="COLOR: #008080">22</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">if</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">(聽hDll聽)<br /></span> <span style="COLOR: #008080">23</span>聽 </font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">{<br /></span> <span style="COLOR: #008080">24</span>聽<span style="COLOR: #000000">聽聽聽聽dllFun聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽(CallFun)GetProcAddress(hDll,聽</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Func</span><span style="COLOR: #000000">"</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">25</span>聽<span style="COLOR: #000000">聽聽聽聽</span><span style="COLOR: #0000ff">if</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">聽(聽dllFun聽)<br /></span> <span style="COLOR: #008080">26</span>聽 </font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">聽聽聽聽{<br /></span> <span style="COLOR: #008080">27</span>聽<span style="COLOR: #000000">聽聽聽聽聽聽聽聽dllFun(</span><span style="COLOR: #000000">0</span></font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">28</span>聽 </font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">聽聽聽聽}<br /></span> <span style="COLOR: #008080">29</span>聽 </font> </font> <font face="Courier New"> <font size="2"> <span style="COLOR: #000000">聽聽聽聽FreeLibrary(hDll);<br /></span> <span style="COLOR: #008080">30</span>聽<span style="COLOR: #000000">}</span></font> </font> </div> <p> <br />鍔ㄦ侀摼鎺ュ簱鐨勪竴鑸簲鐢ㄩ兘鍦ㄨ繖鍎夸簡錛屾洿鍔犲叿浣撶殑灝辮鍘婚棶google浜?)銆?/p> <p> <font color="#006400">//-------------------------------------------------------------------------------<br />// 寮傛鍥炶皟 ( Asynchronism Callback )</font> </p> <p>浠婂ぉ鎯寵鐨勪富瑕佸唴瀹規(guī)槸寮傛鍥炶皟銆傚ぇ鑷寸粨鏋勬槸錛?/p> <p> <font color="#006400">//-------------------------------------------------------------------------------<br />//聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽 IAsyncCaller聽 IAsyncCallback<br />//聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 \聽聽聽 /<br />// CManager --> CSession --> CEvent<br />//-------------------------------------------------------------------------------<br />// class :聽聽CManager<br />// function :聽Singleton瀹炵幇錛岀鐞嗘墍鏈塁Session瀵硅薄</font> </p> <p> <font color="#006400">// class :聽聽CSession<br />// function :聽澶勭悊浼?xì)璇濆Q屽叧鑱斾簨鍔?/font> </p> <p> <font color="#006400">// class :聽聽CEvent<br />// function :聽Session鐨勫叧鑱斿璞★紝澶勭悊寮傛鍥炶皟<br />// base class:聽IAsyncCaller, IAsyncCallback</font> </p> <p>鍦ㄥ彂璧穝ession鐨勬椂鍊欙紝new涓涓狢Session瀵硅薄錛屼負(fù)鍏跺垎閰嶄竴涓狦UID錛屽茍鍔犲叆綆$悊session鐨凜Manager瀵硅薄鐨刴ap(鏀寔澶氱嚎紼嬫搷浣?錛宯ew涓涓狢Event瀵硅薄錛屽皢璇Event瀵硅薄璁劇疆涓哄洖璋冨搷搴旂殑host錛岃CEvent瀵硅薄鍙繘琛屽叾浠栧悓姝ュ鐞嗐?/p> <p>褰撳洖璋冩潯浠舵弧瓚籌紝鐢盋Manager閫氳繃鐩稿簲CSession瀵硅薄瑙﹀彂錛屽茍浜ょ敱鍏跺叧鑱旂殑CEvent瀵硅薄澶勭悊銆?/p> <p>濡傛灉CEvent搴旂敤瑙勬ā杈冨皬錛屽彲鐢盋Manager鐨刴ap鐩存帴綆$悊錛岀渷鎺塁Session鐨勪腑闂村鐞嗐?/p> <p>榪欑澶勭悊鏂瑰紡鐨勪紭鐐規(guī)槸錛屽皢鏅氫簨鍔$殑鍥炶皟澶勭悊鏈哄埗鎶借薄涓洪氳繃Session Manager(CManager)榪涜緇熶竴綆$悊錛屾櫘閫氫簨鍔$殑澶勭悊鏀懼埌main thread涓紝綰跨▼闂撮氫俊鍒欎氦緇機(jī)Manager鍜孋Session錛屽疄鐜頒簡鑹ソ灝佽銆?/p> <p> <font color="#006400">//-------------------------------------------------------------------------------<br />// 鍏蜂綋瀹炵幇榪欓噷灝變笉緇欏嚭浜嗭紝鐢ㄥ埌鐨凾X鏍規(guī)嵁涓婇潰鐨勬弿榪板簲璇ュぇ姒傜煡閬撴庝箞鍋氫簡銆傚叾浠朤X濡傛灉涓嶆竻妤氱殑璇濓紝<br />// 娓呮鐨勮瘽錛屽彲浠ュ厛google鍏朵腑鐨勪竴浜涘叧閿瘝銆傚姩鎬侀摼鎺ュ簱鐨勯儴鍒嗗洜涓哄唴瀹瑰緢灝戯紝鍥犳涔熷彧鎻愪緵鍩虹浣跨敤銆?br />//<br />// PS: 鍥犱負(fù)GF瀛︾煡璇嗕駭鏉冪殑錛屽垰濂戒簡瑙e埌鏈夎繖鏍蜂竴涓?a target="_blank">鈥滃垱浣滃叡鐢ㄢ濆崗璁?/a>錛岃屼笖鏈榪戝緢澶氫漢鍦ㄨ璁?br />// <a href="/minidxer/archive/2008/01/05/40497.html/" target="_blank">cppblog鐨勫師鍒涚簿紲為棶棰?/a>錛屼簬鏄ぇ瀹跺氨鐪嬪埌鎴慴log欏墮儴鐨勮繖涓笢瑗?)銆?br />// 娉ㄩ噴椋庢牸涔熸敼鎴愯嚜宸卞鉤鏃剁敤鐨勪簡:)銆?br />//-------------------------------------------------------------------------------</font> </p><img src ="http://www.shnenglu.com/Fox/aggbug/41699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-01-23 11:04 <a href="http://www.shnenglu.com/Fox/archive/2008/01/23/asny_callback.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>闂ㄧ澶氱嚎紼嬪畨鍏?/title><link>http://www.shnenglu.com/Fox/archive/2008/01/10/multithread_security.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Wed, 09 Jan 2008 20:02:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/01/10/multithread_security.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/40845.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/01/10/multithread_security.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/40845.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/40845.html</trackback:ping><description><![CDATA[<p>Author: Fox</p> <p>涓銆佸綰跨▼瀹夊叏鐨勫紩鍏ワ細(xì)</p> <p>鍏充簬浠涔堟槸澶氱嚎紼嬨佷負(fù)浠涔堜嬌鐢ㄥ綰跨▼鐨勯棶棰橈紝澶у鍙互鐪嬬湅Jim Beveridge & Robert Wiener鐨?a target="_blank">銆奧in32澶氱嚎紼嬬▼搴忚璁°?/a>錛堜警鎹?璇戯級錛屾垨鑰呭叾浠栭殢渚夸竴鏈彁鍒板綰跨▼鐨勪功鎴栨枃绔犮傝繖閲屽彧鏄彁鍒癢indows鐜涓嬪綰跨▼瀹規(guī)槗寮曞彂鐨勯棶棰樺拰瑙e喅鍔炴硶銆?/p> <p>1銆佺嚎紼嬪湪鏃墮棿鐗囩粨鏉熸椂閫鍑哄仛涓嶅埌</p> <p>鐢變簬Windows灞炰簬鍒嗘椂鎿嶄綔緋葷粺錛岀郴緇熶細(xì)涓烘瘡涓嚎紼嬪垎閰嶅搷搴旂殑鏃墮棿鐗囦嬌鍏跺伐浣滐紝緇濆ぇ澶氭暟綰跨▼涓嶅彲鑳藉湪鏃墮棿鐗囩粨鏉熺殑鏃跺欏畬鎴愬叾宸ヤ綔錛岃屼笅涓涓椂闂寸墖灝辨湁鍙兘鍒嗛厤緇欏叾浠栫嚎紼嬨?/p> <p>2銆佺嚎紼嬬嫭绔嬪仛涓嶅埌</p> <p>濡傛灉綰跨▼闂翠笉瀛樺湪渚濊禆鍏崇郴錛屽嵆綰跨▼A鐨勬墽琛屼笉渚濊禆浜庣嚎紼婤鐨勬墽琛岋紝姝ゆ椂鍗充嬌綰跨▼B琚墦鏂紝鐢變簬綰跨▼鐙珛錛屾墍浠ヤ簩鑰呬篃鍙互鐩稿畨鏃犱簨銆?/p> <p>鐒惰岋紝鍦ㄥ綰跨▼瑙e喅鏂規(guī)涓紝綰跨▼闂寸殑閫氫俊鏄綣佽屼笖蹇呰鐨勩傜嚎紼嬮氫俊涓昏鏈変袱縐嶆儏鍐碉細(xì)</p> <p>1) 澶氫釜綰跨▼鍏變韓鐩稿悓璧勬簮錛?/p> <p>2) 涓涓嚎紼嬬殑鎵ц渚濊禆浜庡叾浠栫嚎紼嬬殑緇撴灉鎴栨墽琛屾儏鍐點(diǎn)?/p> <p>榪欐椂錛屾垜浠氨闇瑕佸疄鐜板叡浜祫婧愬強(qiáng)綰跨▼鎵ц鐨勫悓姝ャ?/p> <p>浜屻佸綰跨▼瀹夊叏鐨勮В鍐蟲柟妗堬細(xì)</p> <p>鍥犳錛屽綰跨▼瀹夊叏鐨勭洰鏍囧氨鏄疄鐜板叡浜祫婧愮殑浜掓枼璁塊棶鍜岀嚎紼嬫墽琛岀殑鍚屾閫氫俊銆?/p> <p>閫氳繃瀵規(guī)搷浣滅郴緇熺殑瀛︿範(fàn)錛屾垜浠煡閬撶嚎紼嬪悓姝ヤ富瑕佹湁浠ヤ笅鏂規(guī)硶錛?/p> <p>1) 涓寸晫孌?Critical Section)</p> <p>a) 涓寸晫璧勬簮鐨勫彇鑸嶏紝瀹滃皯涓嶅疁澶氾紝瀹滅煭涓嶅疁闀匡紝涓涓嚎紼嬪彧鑳芥渶澶氱瓑寰呬竴涓復(fù)鐣屾錛?/p> <p>b) 鏃犳硶渚︽祴涓涓復(fù)鐣屾鏄惁宸茬粡琚斁寮冿紱</p> <p>c) 涓寸晫孌靛睘浜庣敤鎴峰璞°?/p> <p>2) 浜掓枼閿?Mutex)</p> <p>鍚屼復(fù)鐣屾涓鏍鳳紝浜掓枼閿佷篃涓昏鐢ㄤ簬淇濊瘉璧勬簮鐨勫師瀛愯闂紝浜岃呯殑涓嶅悓涔嬪鍦ㄤ簬錛?/p> <p>a) 浜掓枼閿佸睘浜庡彲鍏峰悕鍐呮牳瀵硅薄錛?/p> <p>b) 浜掓枼閿佸彲浠ヨ法榪涚▼浣跨敤錛屼復(fù)鐣屾鍙兘鐢ㄤ簬鍚屼竴榪涚▼鍐咃紱</p> <p>c) 浜掓枼閿佸彲浠ユ寚瀹氱瓑寰呮椂闂達(dá)紝鑰屼笖鍙互絳夊緟鍏朵粬鍐呮牳瀵硅薄銆?/p> <p>3) 浜嬩歡(Event)</p> <p>a) 浜嬩歡閲嶇疆鍏鋒湁浜哄伐閲嶇疆鍜岃嚜鍔ㄩ噸緗袱縐嶆柟寮忥紝綆鍗曡鏉ワ紝浜岃呭垎鍒敤浜庡璇誨拰鍗曞啓錛?/p> <p>b) 浜嬩歡涓昏鐢ㄤ簬綰跨▼闂寸浉浜掗氱煡(鍞ら啋)錛?/p> <p>C) 浜嬩歡灞炰簬鍙叿鍚嶅唴鏍稿璞°?/p> <p>4) 淇″彿閲?Semaphore)</p> <p>a) 淇″彿閲忓睘浜庡彲鍏峰悕鍐呮牳瀵硅薄錛?/p> <p>b) 淇″彿閲忔病鏈夋嫢鏈夎咃紝鍙浠諱竴綰跨▼閲婃斁錛?/p> <p>鍏充簬Win32涓繖鍥涚瀵硅薄鐨勪嬌鐢ㄥ拰瑕佺偣錛屾洿璇︾粏鐨勪粙緇嶅彲浠ュ弬鐓с奧in32澶氱嚎紼嬬▼搴忚璁°嬫垨<a target="_blank">銆奧indows鏍稿績緙栫▼銆?/a>(Jeffrey Richter)絳夈?/p> <p>涓夈佸綰跨▼瀹夊叏鐨勫疄鐜幫細(xì)</p> <p>灝嗗鏁版嵁錛堝璞°佹ā鍨嬨佹秷鎭丼ocket錛夌殑I/O澶勭悊鏀懼湪鍚屼竴涓狪/O綰跨▼涓紝淇濊瘉濡傞槦鍒楃殑push/pop鎿嶄綔銆侀摼琛ㄧ殑insert/delete鎿嶄綔銆佹枃浠剁殑write鎿嶄綔銆乻ocket鐨剅ecv/send鎿嶄綔銆佸叏灞鍙橀噺鐨剋rite鎿嶄綔絳夌殑浜掓枼璁塊棶銆?/p> <p>鏂板緩鐙珛妯″潡錛屽挨鍏舵槸浣跨敤絎笁鏂瑰簱鐨勭嫭绔嬫ā鍧楋紝澶у浼?xì)鍒涘缓鐙珛鐨勬柊绾拷E嬨傛鏃跺氨闇瑕佸鏂扮嚎紼嬩腑鐨勬暟鎹搷浣滃姞浠ユ敞鎰忥紝鍙互閫氳繃瀵規(guī)搷浣滄暟鎹殑鍔犻攣璁塊棶瑙e喅鍚屾闂錛屽綋鐒?dòng)灱屾洿甯歌鐨勫鐞嗘柟寮忔槸灏嗘柊绾拷E嬩腑鐨勬暟鎹搷浣滃彂閫佸埌涓撻棬鐨処/O綰跨▼涓鐞嗐?/p> <p>鎬諱箣錛屽綰跨▼瀹夊叏鏄釜甯歌甯告柊鐨勮瘽棰橈紝鐜板湪鏈変漢鎻愬嚭<a target="_blank">Lock-Free</a>鏁版嵁緇撴瀯鐨勮В鍐蟲柟妗?Maged M. Michael)錛屼篃鏈夋墍璋撶殑<a target="_blank">Wait-Free</a>鐨勮В鍐蟲柟妗?Maurice Herlihy)錛岃屽浗鍐呯綉娓哥晫鐨勫ぇ鐗涗簯椋庡悓瀛︽洿鏄彁鍑轟簡<a target="_blank">鍗曠嚎紼嬪榪涚▼</a>鐨勮鐐瑰拰瑙e喅鏂規(guī)錛堝洜涓轟笉浜嗚В錛屾寜瀛楅潰鏈夊彲鑳藉瓨鍦ㄦ柇绔犲彇涔変箣瀚岋級銆備絾涓嶇鎬庝箞鏍鳳紝浠庝腑鑷沖皯鍙互鐪嬪嚭錛屽綰跨▼錛岃鏉ヨ瘽闀褲?/p> <p>闆墮浂鏁f暎銆佷笢鎷夎タ鎵佷笉鐭ユ墍浜戠殑璁蹭簡涓浜涗笢瑗匡紝鏈繀姝g‘錛屾洿涓嶈兘褰撲綔鐭ヨ瘑銆傚叏褰撴槸瀵?a href="/Fox/archive/2008/01/02/change_mind_2008.html" target="_blank">涓婃鐨勬壙璇?/a>鏈変釜浜や唬銆?/p> <p> <font color="#008000">/*****************************************************************************<br />聽鎯蟲妸澶氱嚎紼嬬殑闂鎼炴槑鐧斤紝涓嶆槸璇寸湅鐪嬫搷浣滅郴緇熸暀鏉愶紝鍐欑偣澶氱嚎紼嬭鍐欑殑浠g爜灝卞鐨勩備笖涓嶈瀛版槸瀛伴潪錛?br />聽鍗曞氨緗戜笂璇稿楂樻墜鏂板瀵瑰姞閿佺瓥鐣ラ摵澶╃洊鍦扮殑浜夋墽璇磋緸鐢氳嚦鐩鎬簰鎵瑰垽鎸囪矗錛岃凍鍙澶氱嚎紼嬪紑鍙戝茍闈炲彧璦<br />聽鐗囪鍗沖彲鎸戞槑銆?br />聽涓洪槻姝㈤櫡鍏ョ粏鑺備簤璁猴紝榪欓噷鍏堜綔澹版槑錛氬皬鏂囦粎灝辨墍瀛︾暐鎶掓嫏瑙侊紝鏃犳剰寮曡搗浜夌鈥︹?br />*****************************************************************************/</font> </p><img src ="http://www.shnenglu.com/Fox/aggbug/40845.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-01-10 04:02 <a href="http://www.shnenglu.com/Fox/archive/2008/01/10/multithread_security.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璋冩暣鎬濊礬鈥斺?008騫寸戶緇姫鍔?/title><link>http://www.shnenglu.com/Fox/archive/2008/01/02/change_mind_2008.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Tue, 01 Jan 2008 18:43:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2008/01/02/change_mind_2008.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/40201.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2008/01/02/change_mind_2008.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/40201.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/40201.html</trackback:ping><description><![CDATA[<p>Author: Fox</p> <p>鍏冩棪鏀懼亣3澶╋紝鏈潵鎯蟲妸鍓嶉潰鍐欑殑涓涓瓨鍦ㄧ嚎紼嬪畨鍏ㄩ殣鎮(zhèn)g殑妯″潡鎺ㄥ掗噸鏉ョ殑錛屽彲鏄敼鐫鏀圭潃灝辮寰椾笉瀵瑰姴浜嗐?/p> <p>鏃㈢劧鏄繑宸ワ紝灝辨兂灝介噺鎶婄幇鍦ㄧ殑鐞嗚В瀹屽叏鍔犺繘鍘伙紝璁╁悗闈㈢殑浜虹湅浜嗕笉瑕侀獋銆傚彲鏄兂鎶婂嚑鍗冭鐨勪唬鐮佹敼寰楅潰鐩叏闈炲茍涓旀洿鍔犲畨鍏ㄥ噯紜篃騫朵笉鏄竴浠跺鏄撶殑浜嬶紝铏界劧瀵逛簬鍔熻兘鍜岄昏緫鐨勮璇嗘瘮浠ュ墠瑕佹竻鏅扮殑澶氥?/p> <p>鎷垮埌涓涓柊鐨勬ā鍧楋紝涓婇潰涓鑸細(xì)緇欎釜澶ц嚧鐨刣eadline銆傞櫎闈炰綘瀵硅繖涓ā鍧楀拰鏁翠釜欏圭洰鐨勪緷璧栧叧緋伙紙鎺ュ彛銆侀昏緫銆佸姛鑳斤級鏈夊緢濂界殑鎶婃彙錛屽惁鍒欙紝浣犳牴鏈笉鐭ラ亾鍒板簳鏈夊灝戜笢瑗挎槸宸茬粡瀹炵幇鐨勶紝鏈夊灝戜笢瑗挎槸鍙互澶嶇敤鐨勶紝鏈夊灝戜笢瑗挎槸闇瑕佷慨鏀圭殑錛屾湁澶氬皯涓滆タ鏄閲嶅啓鐨勶紝鏈夊灝戜笢瑗挎槸瑕佹柊鍔犵殑錛屼粎浠呮牴鎹渶姹傞浼扮殑榪涘害鏄笉鍙兘鎭板埌濂藉鐨勩傝岃劚紱諱簡鏁翠釜欏圭洰瀹炵幇鐨勬ā鍧楁槸闈炲父鍙兘鍑洪棶棰樼殑錛屽挨鍏舵槸鍦ㄤ嬌鐢ㄥ綰跨▼鐨勯」鐩腑銆?/p> <p>褰撴垜鐨勮繖涓ā鍧楀畬鎴愬茍涓婇┈涔嬪悗錛屾垜娌炬簿鑷枩鐨勮窡涓婇潰璇達(dá)紝搴旇鏄笉浼?xì)鏈夐棶棰樹簡锛屼笂闈㈣窡鎴戣浜嗕竴鍙ワ細(xì)濡傛灉涓嶅嚭闂灝辨槸濂囪抗浜嗭紝鎴戝綋鏃墮涓嶄互涓虹劧銆傚湪鍚庨潰涓涓ゅ懆涔嬪唴鐪熺殑灝辨槸娌℃湁浠涔堥棶棰橈紝鎴戠湡鎯沖憡璇変粬鏄垜鍒涢犱簡濂囪抗銆?/p> <p>鈥滃榪光濆湪2007騫寸殑鏈鍚庝竴鍛ㄧ牬鐏簡銆傚湪<a href="/Fox/archive/2007/12/26/yule_xiling_snow_mount.html" target="_blank">鎴戜粠瑗垮箔闆北鍥炴潵</a>鐨勯偅澶╋紝涓轟簡澧炲姞鏂板姛鑳芥妸浠g爜淇敼浜嗕竴浜涳紝緇撴灉絎簩澶╂洿鏂頒箣鍚庯紝鏈嶅姟鍣ㄥ氨鑰佹槸鏈夐棶棰橈紝鎵句簡涓涓嬪崍錛屾墠鍙戠幇鍦ㄤ慨鏀逛唬鐮佺殑鏃跺欏眳鐒跺繕璁板涓涓猵ointer鍋歂ULL鍒ゅ畾錛佹垜蹇冩兂錛岃繖縐嶉敊璇眳鐒墮兘鍑烘潵浜嗭紒姝諱簡綆椾簡錛佽屼笖榪欎釜闂鍑哄湪闈炰富綰跨▼涓傜劧鍚庡氨鍜屽悓浜嬪湪鑰冭檻錛岃繖涓笢瑗垮鏋滅嚎紼嬪悓姝ュ嚭鐜伴棶棰橈紝浣犲氨鏄瘡嬈′嬌鐢ㄥ墠閮藉仛NULL鍒ゅ畾涔熸病鐢紝鎵浠ュ氨鍐沖畾鎶婅繖涓ā鍧楅噸鍐欎簡銆?/p> <p>鍦ㄨ繖鍎挎垜灝變笉鎯沖氨綰跨▼瀹夊叏闂澶氳浜嗭紝浠ュ悗鎯沖ソ浜嗗啀涓撻棬鍘誨啓鐐瑰綰跨▼鐨勪笢瑗垮惂錛屼粖澶╁彧鏄兂璇寸偣鐞愮鐨勪笢瑗褲?/p> <p>鍥犱負(fù)鏄斁鍋囷紝蹇冩濇湭蹇呭氨鍏ㄩ儴鏀懼湪涓婇潰浜嗭紝浠g爜娌℃敼澶氬皯錛屽掓槸鐜╀簡寰堥暱鏃墮棿鐨勬父鎴忋傚悗鏉ユ兂鎯籌紝涔熶笉鍏ㄦ槸鏃墮棿闂錛屽嚑鍗冭鐨勪唬鐮佹敼鏉ユ敼鍘伙紝闅句繚涓嶅嚭鐜版洿澶氱殑闂銆傚繀欏繪妸瀹冨綋浣滀竴涓柊鐨勬ā鍧楀幓鍐欙紝鍏堣鎶婇昏緫緇撴瀯瀹屽叏鐞嗗嚭鏉ワ紝鑳藉緇嗗寲灝卞緇嗗寲錛屾渶濂借兘澶熺簿紜埌鍙橀噺鐨勪嬌鐢紝鑰屼笖鎶婃枃妗e仛緇嗭紝榪欐牱灝卞彲浠ュ湪鍐欐枃妗g殑榪囩▼涓妸闂灝藉彲鑳芥兂鍏ㄦ兂娓呮銆傛敼浠g爜鍏堟敼鏂囨。錛岃繖鍑犱箮鏄墍鏈夊榪囪蔣浠跺伐紼嬪茍鍐欒繃欏圭洰鐨勫悓瀛﹂兘鑳借璇嗗茍鐞嗚В鐨勫父璇嗭紝鍙槸鍦ㄥ疄闄呭伐浣滀腑錛屼笂鏈変換鍔″偓璧訛紝涓嬫湁闂插績鏉傚康錛屽緢闅炬妸鏂囨。鍜屾敞閲婂啓濂姐傝屽仛涓嶅埌榪欎竴鐐圭殑璇濓紝浣犲氨涓嶆暍淇濊瘉浣犵殑妯″潡涓嶅嚭宸敊銆?/p> <p>鎵浠ワ紝瀵逛簬涓涓竴鑸殑闇姹傦紝濡傛灉deadline鏄?涓湀鐨勮瘽銆傝闇姹傘佽瘎浼頒緷璧栧叧緋匯侀噺榪涘害瑕佽姳鎺?鍛紝鐢婚昏緫緇撴瀯銆佸啓鏂囨。瑕佽姳鎺?鍛紝鐩稿綋浜庡墠闈竴鍗婄殑鏃墮棿娌℃湁鍔ㄦ墜鍐欎唬鐮侊紝鐒跺悗鍐欎唬鐮佸ぇ姒傚彧鐢?鍛紝鐢氳嚦鏇村皯錛屽叾浠栨椂闂村氨鐣欑粰嫻嬭瘯鍜屼慨鏀規(guī)枃妗c佷唬鐮佷簡銆備粠杞歡宸ョ▼鐨勮搴︼紝榪欐牱鐨勫垎閰嶆槸鍚堢悊鐨勶紝鑰屼笖鏄簲璇ョ殑錛屼絾鍒頒簡瀹為檯欏圭洰閲岄潰錛屽張鍋氫笉鍒幫紒鐪嬫潵錛屼笉綆℃槸manager錛岃繕鏄痗oder錛岄兘涓嶈兘鎬ワ紝杞歡宸ョ▼涓嶈兘鐧藉浜嗐?/p> <p>鎴戝彂鐜幫紝鎴戠殑杞歡宸ョ▼灝辨槸鐧藉浜嗭紝浠ュ悗寰楁敼鏀廣?/p> <p> <font color="#008000">/*****************************************************************************<br />聽涓嶆兂鍥炲ご鍘誨姩浠ュ墠鐨勪唬鐮侊紝姣忔鐪嬩互鍓嶅啓榪囩殑涓滆タ錛岄兘鏈変竴縐嶆兂鎶婂畠褰誨簳鍒犻櫎鐨勫啿鍔ㄣ?br />聽鎶婇渶姹傜湅濂姐佹枃妗e啓濂姐佹椂闂村畨鎺掑ソ錛岃繖鎵嶆槸紜亾鐞嗏︹?/font> </p> <p> <font color="#008000">聽姣曠珶鏄柊騫達(dá)紝榪樻槸紲濆ぇ瀹訛細(xì)鏂板勾蹇箰錛?br />聽閲嶈鐨勬槸錛屾柊鐨勪竴騫達(dá)紝鍒崚搴熶簡鈥︹?br />*****************************************************************************/</font> <br /> </p><img src ="http://www.shnenglu.com/Fox/aggbug/40201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2008-01-02 02:43 <a href="http://www.shnenglu.com/Fox/archive/2008/01/02/change_mind_2008.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涔熻璇寸駭鏁版眰鍜?1+2+3...N)鍜屽叾浠?/title><link>http://www.shnenglu.com/Fox/archive/2007/12/21/simple_series_sum.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Fri, 21 Dec 2007 02:19:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2007/12/21/simple_series_sum.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/39190.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2007/12/21/simple_series_sum.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/39190.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/39190.html</trackback:ping><description><![CDATA[<p>Author: Fox</p> <p>瀵逛簬(1+2+...+N) 鐨勬眰鍜岋紝鏈鏃╁氨鏄湅楂樻柉鐨勬晠浜嬶紝鑰屼笖璇村疄璇濓紝鎴戞槸娌℃湁榪欐牱鐨勬櫤鍟嗙殑錛?/p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sum(1+2+...+N) = N*(N+1)/2</p> <p>鍒氱湅浜嗕竴綃?a href="/azhisoft/archive/2007/12/19/436.html" target="_blank">鐮旂┒璇ョ駭鏁版眰鍜岀殑鏂囩珷</a>錛岃櫧涓鴻皟渚冿紝浣嗗疄鍦ㄦ劅瑙夋枃涓喊婕忓お澶氾紝涓嶇鍦ㄦ澶氳█銆?/p> <p>鏂囦腑鐨勭涓縐嶆柟娉曡嚜縐版爣鍑嗭紝鑰屼笖榪樿兘浣庫滃叏鐝?/3鐨勫悓瀛﹂兘鐢ㄤ亢鐨勬爣鍑嗗簲浠樿佸笀鍜岃瘯鍗封濓紝鎴戝ぇ涓烘儕璇э細(xì)</p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <font face="Courier New"> <font size="4"> <span style="COLOR: #008080">1</span>聽<span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽i,聽sum聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">0</span></font> </font> <font face="Courier New"> <font size="4"> <span style="COLOR: #000000">;<br /></span> <span style="COLOR: #008080">2</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">聽N;i聽</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)sum聽</span><span style="COLOR: #000000">+=</span></font> </font> <font face="Courier New"> <font size="4"> <span style="COLOR: #000000">聽i;<br /></span> <span style="COLOR: #008080">3</span>聽<span style="COLOR: #000000">printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1-N鐨勭駭鏁板拰鏄?聽%i</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,sum);</span></font> </font> </div> <p> <br />鏄劇劧錛宲rintf鐨勭粨鏋滄槸N-1涓暟鐨勫拰錛屾澶勶紝鎴戞洿鎰挎剰鐩鎬俊鏄枃涓殑絎旇鑰屽凡銆?/p> <p>絎簩縐嶅拰絎笁縐嶆柟娉曡浜鴻寰楀鎬細(xì)</p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <font face="Courier New"> <font size="4"> <span style="COLOR: #008080">1</span>聽<span style="COLOR: #0000ff">float</span></font> </font> <font face="Courier New"> <font size="4"> <span style="COLOR: #000000">聽sum;<br /></span> <span style="COLOR: #008080">2</span>聽<span style="COLOR: #000000">sum聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽(N聽</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)聽</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">聽N聽</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">2</span></font> </font> <font face="Courier New"> <font size="4"> <span style="COLOR: #000000">;<br /></span> <span style="COLOR: #008080">3</span>聽<span style="COLOR: #000000">printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1-N鐨勭駭鏁板拰鏄?聽%i</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,(</span><span style="COLOR: #0000ff">int</span></font> </font> <font face="Courier New"> <font size="4"> <span style="COLOR: #000000">)sum);<br /></span> <span style="COLOR: #008080">4</span>聽</font> </font> <span style="COLOR: #000000"> <br /> </span> <font face="Courier New"> <font size="4"> <span style="COLOR: #008080">5</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">float</span></font> </font> <font face="Courier New"> <font size="4"> <span style="COLOR: #000000">聽sum;<br /></span> <span style="COLOR: #008080">6</span>聽<span style="COLOR: #000000">sum聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽N聽</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">聽(N聽</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">0.5</span></font> </font> <font face="Courier New"> <font size="4"> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">7</span>聽<span style="COLOR: #000000">printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1-N鐨勭駭鏁板拰鏄?聽%i</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)sum);</span></font> </font> </div> <p> <br />鍓嶉潰鐨勫啓娉曠函灞炴伓鎼烇紝^鍦–/C++涓槸寮傛垨浣嶆搷浣滐紝鐩鎬俊鎺ヨЕ榪囦綅榪愮畻鐨勪漢閮界煡閬撹繖涓鐐癸紝鑰屼笖褰揘涓哄鏁版椂錛宻um鐨勭粨鏋滃皢姣旂湡瀹炲煎皯1銆傚悗闈㈢殑鍐欐硶鏇存槸鑽掑攼錛屽綋N涓哄鏁版椂錛宻um鐨勭粨鏋滃皢姣旂湡瀹炲肩浉鍘繪洿榪滐紙鏈夊叴瓚g殑鍙互浠旂粏鐪嬬湅錛夈?/p> <p>瀵逛簬鍚庨潰涓ょ鍐欐硶錛屾垜鎯寵鐨勯噸鐐逛笉鏄繖浜涙槑鏄劇殑閿欒錛屽洜涓鴻繖鏍風(fēng)殑閿欒鍙彲鍗氫紬鍚涗竴絎戙備絾鏂囦腑瀹氫箟sum浣跨敤float鐨勫仛娉曪紝璁╂垜鐧炬濅笉寰楀叾瑙c傚浜庤綆楁満鐨勮繍綆楋紝嫻偣榪愮畻鐨勮楁椂鍜屾暣鍨嬭繍綆楃殑鑰楁椂錛岄偅涓嶆槸涓涓暟閲忕駭鐨勩傚浜庤綰ф暟榪愮畻錛屾垜浠畬鍏ㄥ彲浠ラ伩鍏嶆誕鐐硅繍綆楋紝鑰屼笖鏂規(guī)硶鍦ㄦ枃绔犱竴寮濮嬶紝灝卞凡緇忕粰鍑轟簡錛?/p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <font size="4"> <font face="Courier New"> <span style="COLOR: #008080">1</span>聽<span style="COLOR: #0000ff">int</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">聽sum;<br /></span> <span style="COLOR: #008080">2</span>聽<span style="COLOR: #000000">sum聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽N</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">;<br /></span> <span style="COLOR: #008080">3</span>聽<span style="COLOR: #000000">printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1-N鐨勭駭鏁板拰鏄?聽%i</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,聽sum);</span></font> </font> </div> <p> <br />鏃犺N涓哄鏁拌繕鏄伓鏁幫紝N*(N+1)涓瀹氭槸鍋舵暟錛屽洜姝わ紝涓婅堪鏂規(guī)硶涓嶅瓨鍦ㄦ誕鐐硅繍綆楋紝鑰屼笖緋葷粺浼?xì)鑷姩灏?2鐨勬搷浣滀紭鍖栦負(fù)鍙崇Щ1浣嶃?/p> <p>涓嶇煡鎬庝箞錛屽拷鐒跺氨鎯沖埌浜嗛掑綊錛屾兂鍒頒簡Fibonacci鏁板垪銆傝閫掑綊鐨勬暀鏉愰兘浼?xì)鎷夸笂闈㈢殑珩旀暟姹傚拰鍜孎ibonacci鏁板垪鍋氫緥瀛愩傚叾瀹烇紝鎴戜釜浜烘劅瑙夎繖鏄笉鎭板綋鐨勶紝浣嗘兂鎯充負(fù)浜嗚瀛︾敓鎺屾彙閫掑綊綆楁硶錛屼篃鍙兘涓劇被浼肩殑綆鍗曠殑渚嬪瓙銆傛垜浠篃鐭ラ亾錛岄掑綊璁$畻瀵逛簬鍫嗘爤璋冪敤鏄潪甯擱綣佽岃楁椂鐨勶紝瀵逛簬姹侶anoi濉旇繖鏍風(fēng)殑澶嶆潅闂錛屾垜涓嶇煡閬撲笉鐢ㄩ掑綊鏈夋病鏈夋洿濂界殑鏂規(guī)硶錛屼絾濡傛灉璁$畻Fibonacci鏁板垪榪樻槸浣跨敤閫掑綊錛屽湪鍒濆閫掑綊鏃舵槸鍙互鍘熻皡鐨勩傜畝鍗曠偣鐨勬柟娉曞彲浠ユ槸榪欐牱錛?/p> <p> </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <font size="4"> <font face="Courier New"> <span style="COLOR: #008080">聽1</span>聽<span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽fib_odd聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,聽fib_even聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">1</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">聽;<br /></span> <span style="COLOR: #008080">聽2</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽n聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽(N+1)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">;<br /></span> <span style="COLOR: #008080">聽3</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;聽i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">n;聽i</span><span style="COLOR: #000000">++</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">聽)<br /></span> <span style="COLOR: #008080">聽4</span>聽</font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">{<br /></span> <span style="COLOR: #008080">聽5</span>聽<span style="COLOR: #000000">聽聽fib_odd聽</span><span style="COLOR: #000000">+=</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">聽聽fib_even;<br /></span> <span style="COLOR: #008080">聽6</span>聽<span style="COLOR: #000000">聽聽fib_even聽</span><span style="COLOR: #000000">+=</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">聽聽fib_odd;<br /></span> <span style="COLOR: #008080">聽7</span>聽</font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">}<br /></span> <span style="COLOR: #008080">聽8</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽nFib聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">0</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">;<br /></span> <span style="COLOR: #008080">聽9</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(聽N聽</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">2</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">聽)<br /></span> <span style="COLOR: #008080">10</span>聽<span style="COLOR: #000000">聽聽nFib聽</span><span style="COLOR: #000000">=</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">聽fib_odd;<br /></span> <span style="COLOR: #008080">11</span>聽<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">else</span></font> </font> <span style="COLOR: #000000"> <br /> </span> <font size="4"> <font face="Courier New"> <span style="COLOR: #008080">12</span>聽<span style="COLOR: #000000">聽聽nFib聽</span><span style="COLOR: #000000">=</span></font> </font> <font size="4"> <font face="Courier New"> <span style="COLOR: #000000">聽fib_even;<br /></span> <span style="COLOR: #008080">13</span>聽<span style="COLOR: #000000">printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Fibonacci鏁板垪鍓峃欏瑰拰鏄?聽%i</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,nFib);聽</span></font> </font> </div> <p> <br />涓婇潰鐨勪袱孌典唬鐮佷腑sum鍜宯Fib鐨勫間笉鑳藉お澶?)銆?/p> <p>甯歌█閬擄紝璦榪囧繀澶便備絾鑷涓鐐硅錛屾妸鑷繁鐨勯敊璇毚闇茬粰鍒漢錛屽彲浠ヨ鑷繁鏇村ソ鐨勮繘姝?)錛屽洜姝わ紝鎴戝啓涓嬫潵錛屾彁閱掕嚜宸變篃鎻愰啋澶у錛屾洿嬈㈣繋澶у澶氭壒璇勬寚姝c?/p><img src ="http://www.shnenglu.com/Fox/aggbug/39190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2007-12-21 10:19 <a href="http://www.shnenglu.com/Fox/archive/2007/12/21/simple_series_sum.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍙嶅鎸傜殑涓鐐圭墷楠?/title><link>http://www.shnenglu.com/Fox/archive/2007/12/20/anti_credit.html</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Wed, 19 Dec 2007 18:08:00 GMT</pubDate><guid>http://www.shnenglu.com/Fox/archive/2007/12/20/anti_credit.html</guid><wfw:comment>http://www.shnenglu.com/Fox/comments/39081.html</wfw:comment><comments>http://www.shnenglu.com/Fox/archive/2007/12/20/anti_credit.html#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://www.shnenglu.com/Fox/comments/commentRss/39081.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Fox/services/trackbacks/39081.html</trackback:ping><description><![CDATA[<p>Author: Fox</p> <p>淇楄瘽璇達(dá)紝閬撻珮涓灝猴紝欖旈珮涓涓堛?/p> <p>浠婂ぉ鍦ㄤ竴涓兢閲岋紝鏈変漢鎻愬埌鏌愭煇綆楁硶錛?DES錛夊彲浠ユ潨緇濆鎸傘傛垜褰撴椂蹇冮噷鑻︾瑧涓澹幫細(xì)鍝ヤ滑鍎匡紝澶椾簡銆傝繖騫村ご錛屼腑鍥戒漢宸茬粡琚拷鎮(zhèn)犳曚簡銆傛垜淇¢淇¢瓟錛屽氨鏄笉淇′經(jīng)鈥︹?/p> <p>涓嶈繃鎯蟲兂錛屽鏋滆兘鍦ㄤ竴瀹氱▼搴︿笂鎵撳嚮澶栨寕錛屼篃涓嶉敊錛屽彲鏄璁轟簡鍗婂ぉ錛屾劊鏄病鏈夌粰鍑哄叿浣撶殑鏂規(guī)錛屾渶鍚庤繕鏄笉浜嗕簡涔嬨?/p> <p>涓嶈繃錛屾湁鏃墮棿鎶婃濊礬鏁寸悊鏁寸悊錛屾彁涓涓◢寰ソ涓鐐圭殑鏂規(guī)硶涔熷ソ銆?/p> <p>鐜嬪煄閲岄潰錛屼竴鎺掓帓鐨勫鎸傚皬鍙峰儚闃呭叺涓鏍鳳紝鍤e紶鎴愰┈浜嗭紝瀹屽叏涓嶆妸鎴戜滑鏀懼湪鐪奸噷銆?/p> <p>璇濊鍥炴潵錛岃繛涓劚鏈哄鎸傞兘闃蹭笉浣忥紝鍒漢榪樼‘瀹炴病蹇呰鎶婁綘鏀懼湪鐪奸噷銆?/p> <p>榪欒竟Login Server鎼炰簡涓や笁涓湀鐨勯獙璇佺爜錛屾劅瑙変笉閿欙紝鍥犱負(fù)涓嶄嬌鐢ㄥ鎸傜殑鐜╁姣忔閮借鎶樿吘鍗婂ぉ錛屾垜浠嚜宸變漢鍛樿緭鍏ラ獙璇佺爜杈撶殑閮界儲(chǔ)錛岀粨鏋滄病鍑哄崐涓湀澶栨寕鍙堝紑濮嬫í琛屼簡錛屾劅瑙夋瘮浠ュ墠榪樺殻寮犮?/p> <p>鎴戞槸澶栨寕錛屾垜寰楁剰鐨勭瑧錛屾垜寰楁剰鐨勭瑧鈥︹?/p> <p>鏁㈡儏鏄槻璐兼病闃蹭綇錛屾妸璐兼墧灞嬮噷錛岃嚜宸辮閿佸湪澶栭潰浜嗭紒</p> <p> <font color="#008000">/*****************************************************************************<br />聽 鏅氫笂鏈潵鎯寵嚜宸卞啓涓唴鎸傦紝鍙互鍋峰伔鎳掞紝鍙儨瀵硅繖涓滆タ瀹炲湪鏄粠鏉ユ病鏈夎繃鐮旂┒銆?br />聽聽鎶樿吘浜嗕竴鏅氫笂錛岄儊閮佽岀粓銆?br />聽 鎶涓嶅浜哄晩錛佹兂鏉ラ兘瑙夊緱鍙瑧鈥︹?br />*****************************************************************************/</font> <font color="#000000"> </font> </p><img src ="http://www.shnenglu.com/Fox/aggbug/39081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Fox/" target="_blank">Fox</a> 2007-12-20 02:08 <a href="http://www.shnenglu.com/Fox/archive/2007/12/20/anti_credit.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>娓告垙鑴氭湰鍙橀噺瀛樺彇浼樺寲http://www.shnenglu.com/Fox/archive/2007/12/17/script_variable_optimize.htmlFoxFoxMon, 17 Dec 2007 11:55:00 GMThttp://www.shnenglu.com/Fox/archive/2007/12/17/script_variable_optimize.htmlhttp://www.shnenglu.com/Fox/comments/38779.htmlhttp://www.shnenglu.com/Fox/archive/2007/12/17/script_variable_optimize.html#Feedback5http://www.shnenglu.com/Fox/comments/commentRss/38779.htmlhttp://www.shnenglu.com/Fox/services/trackbacks/38779.htmlAuthor: Fox

鍦∕MORPG涓紝瀛樺湪澶ч噺鐨勬暟鎹枃浠跺拰鑴氭湰鏂囦歡錛岃繖浜涙枃浠舵秹鍙?qiáng)寰堝鍙橀噺锛屽綋鐜╁淇℃伅闇瑕佸瓨鍙栨椂錛堜笂綰褲佷笅綰褲佷繚瀛樸佹湇鍔″櫒浜や簰錛夛紝鍗充即闅忕潃澶ч噺鐨勮鍐欐搷浣溿傞殢鐫娓告垙涓父鎴忎換鍔$殑澧炲姞錛屾瘡涓涓帺瀹跺搴旂殑闇瑕佹暟鎹簱瀛樺彇鐨勮剼鏈彉閲忕殑鏁版嵁閲忎篃闅忎箣綰挎у闀匡紝闅忕潃鐜╁鏁伴噺鐨勫鍔狅紝鍦ㄦ湇鍔″櫒淇濆瓨鐜╁瑙掕壊淇℃伅鐨勬椂鍊欙紝閫氫俊閲忕殑澶у皬鏄浉褰撳彲瑙傜殑錛屼嬌鐢ㄥ綰跨▼璇誨啓錛屽彲浠ヤ嬌鏈嶅姟鍣ㄧ殑澶勭悊鑳藉姏澶у箙澧炲己錛屼絾緗戠粶鍜屾暟鎹簱鎵垮彈鐨勫帇鍔涗篃浼?xì)澶q呭鍔犮?/p>

褰撶劧鐜板湪鏈夊緢澶氱殑鑴氭湰璇█涓烘垜浠璁′換鍔$郴緇熸彁渚涗簡渚垮埄錛屽儚Lua銆丳ython銆丷uby榪欎簺鍔ㄦ佽璦鐨勫姛鑳借秺鏉ヨ秺寮猴紝鑰屼笖鍙互鑲畾鐨勬槸錛屼細(xì)鏈夎秺鏉ヨ秺澶氱殑浜у搧閲囩敤榪欎簺浼樼鐨勮璦銆備絾鎴戜粖澶╄璋堢殑涓嶆槸濡備綍浣跨敤鍔ㄦ佽璦錛屼篃涓嶆槸璁ㄨ鍔ㄦ佽璦瀛頒紭瀛板姡鐨勯棶棰橈紝鑰屾槸瀵逛簬澶ч噺鐨勮剼鏈彉閲忕殑瀛樺彇浼樺寲銆傝鐧戒簡錛岃繖瀵逛簬浣跨敤鑷畾涔夎剼鏈璦鐨勬父鎴忓紑鍙戜漢鍛樻墠鏇存湁鍙傝冧環(huán)鍊箋傝屼笖鎴戣璇寸殑闂寰堝皬錛屽皬鍒版垜鍙槸璁蹭竴鐐圭偣鍐呭錛屽彧鏄垜浠婂ぉ涓嬪崍鐨勪竴鐐規(guī)椿錛屾葷粨涓嬫潵鏇村鍙槸涓轟簡璁╄嚜宸辮浣忥紝騫朵笉鏄暀鑲插埆浜恒?/p>

鍋囪鍦ㄦ暣涓剼鏈郴緇熶腑錛屽瓨鍦?00涓笌鐜╁鐩稿叧鑰屼笖闇瑕佹暟鎹簱瀛樺彇鐨勮剼鏈彉閲忥紝濡傛灉涓涓父鎴忎笘鐣屼腑鎷ユ湁3000涓湪綰跨帺瀹訛紝騫沖潎姣忎釜鐜╁鐨勮剼鏈彉閲忓ぇ灝忎負(fù)10KB錛屽鏋滄湇鍔″櫒鍚屾椂淇濆瓨榪?000涓帺瀹剁殑鏁版嵁錛堥偅鍙笉浠呬粎鏄剼鏈彉閲忥紝褰撶劧鑴氭湰鍙橀噺鎵鍗犵殑鍒嗛噺姣旇緝澶у氨鏄簡錛夛紝3000脳10KB錛屽摝鈥︹︿笌姝ゅ悓鏃訛紝鏈嶅姟鍣ㄨ繕瑕佽繘琛屽叾瀹炴甯哥殑緗戠粶閫氫俊鍜岄昏緫澶勭悊錛堣櫧鐒朵笉鍙兘鏄悓涓涓嚎紼嬶級錛屼絾鏈嶅姟鍣ㄦ壙鍙楃殑鍘嬪姏宸茬粡涓嶅皬浜嗗惂錛屼負(fù)浜嗗噺灝戣繖縐嶅帇鍔涳紝鑴氭湰鍙橀噺鎴愪負(fù)浜嗕竴縐嶇█緙鴻祫婧愩?br />涓轟簡瀵硅剼鏈彉閲忕殑瀛樺彇榪涜浼樺寲錛屾垜鎯沖埌浜嗕竴涓渶瀹規(guī)槗瀹炵幇鐨勬柟娉曘傞氳繃瀵規(guī)暟鎹簱鐨勮瀵燂紙鍏跺疄鎯充篃鎯充篃鎯沖緱鍒?)錛夛紝鎴戝彂鐜扮帺瀹舵暟鎹腑澶ч噺鐨勮剼鏈彉閲忕殑鍊奸兘鏄?鎴栬呯┖瀛楃涓詫紝榪欏氨涓轟紭鍖栨彁渚涗簡寰堝ぇ鐨勪竴涓┖闂淬?/p>

鏈嶅姟鍣ㄤ竴鑸兘淇濆瓨鏈変竴涓剼鏈彉閲忕殑閰嶇疆鏂囦歡錛屽湪榪欎釜鏂囦歡涓垪鍑轟簡鎵鏈夌殑鑴氭湰鍙橀噺鍙?qiáng)鍏堕粯璁ゅ箋傚綋鐜╁鐧誨綍鏃訛紝鏈嶅姟鍣ㄥ皢涓哄叾渚濇嵁榪欎釜鏂囦歡涓哄叾寤虹珛涓浠芥嫹璐濓紝騫朵粠鏁版嵁搴撹鍙栬繖浜涘彉閲忕殑鐪熷疄鍊煎~鍏呬箣銆傚洜涓哄ぇ閲忕殑鍙橀噺鍊奸兘鏄粯璁ゅ鹼紝鎵浠ュ湪寰鏁版嵁搴撲繚瀛樼殑鏃跺欙紝鏄病鏈夊繀瑕佸叏閮ㄤ繚瀛樼殑錛岃屽彧闇淇濆瓨閭d簺涓嶅悓浜庨粯璁ゅ肩殑鍙橀噺鍚嶅拰鍙橀噺鍊間互鍙?qiáng)璇ュ彉閲忓搴旂殑涓嬫爣鍗冲彲銆備笅涓嬈′粠鏁版嵁搴撹鍏ョ殑鏃跺欐牴鎹笅鏍囩‘瀹氬摢浜涘彉閲忓奸渶瑕佷粠鏁版嵁搴撲腑璇誨彇灝卞彲浠ヤ簡銆?/p>

寰堢畝鍗曠殑涓涓搷浣滐紝铏界劧鍋氬埌浜嗚繖涓鐐逛紭鍖栵紝浣嗘槸瀵逛簬500涓彉閲忕殑綰挎ц鍙栧拰鍏朵粬鎿嶄綔錛屼緷鐒朵笉鏄竴涓ソ鐨勫鐞嗘柟娉曘?/p>

鍑犵偣鏀硅繘鐨勬柟鍚戯紝鐩墠鍙槸鏈変釜鎯蟲硶錛?/p>

1銆佸皢鐜╁涓庡叾鑴氭湰鍙橀噺瑙h?/p>

騫朵笉鏄墍鏈夌殑鐜╁閮介渶瑕?00涓剼鏈彉閲忕殑錛屼笉鍚岀瓑綰х殑鐜╁鍙互鍙備笌鐨勪換鍔″拰媧誨姩鏄畬鍏ㄤ笉鍚岀殑錛屾垜浠樉鐒舵病鏈夊繀瑕佷負(fù)姣忎竴涓帺瀹朵粠鐢熷埌姝婚兘淇濇寔榪?00涓彉閲忋傝繖鏍瘋(gè)冭檻涓嬫潵錛屼及璁′竴涓帺瀹剁殑鑴氭湰鍙橀噺鏁板彲浠ュ噺灝?00-400涓紝浠庤屽疄鐜頒簡鈥滃瀮鍦鋸濆洖鏀跺啀鍒╃敤銆侽MG錛?/p>

鎯蟲硶鏄潪甯稿叿鏈夎鎯戝姏鐨勶紝浣嗚繖涓浼樺寲鍚屾椂娑夊強(qiáng)鍒拌剼鏈瓥鍒掑拰紼嬪簭錛岃屼笖紼嶆湁涓嶆厧錛堝鏌愪竴鍙橀噺閲嶅浣跨敤錛夛紝鍏ㄧ洏鐨嗚緭錛屽湪鈥滅ǔ瀹氬帇鍊掍竴鍒団濈殑澶ф柟閽堜笅錛岃繖鏍風(fēng)殑浼樺寲闇瑕佺粰鍑轟竴涓郴緇熺殑絳栫暐錛岀帺瀹剁瓑綰с佽亴涓氬洜绱犵殑褰卞搷閮借鑰冭檻榪涘幓銆?/p>

2銆佸鐜╁鑴氭湰鍙橀噺瀹炵幇鍘嬬緝瀛樺偍

鏈粡鍘嬬緝鐨勮剼鏈彉閲忥紝姣忎釜澶ф鏈夊嚑鍗丅ytes錛屽鏋滈噰鐢ㄤ竴涓ソ鐨勫帇緙╃畻娉曪紝鑳戒笉鑳藉噺灝戝埌10Bytes鍛紵浠涔堝張鏄竴涓ソ鐨勫帇緙╃畻娉曞憿錛熷帇緙╄В鍘嬬緝鐨勬垚鏈拰鐩存帴瀛樺彇鎴愭湰姣旇搗鏉ュ摢涓洿楂樺憿錛熸兂鎯寵繖浜涚殑紜篃閮芥槸闂鍛€?/p>

/*****************************************************************************
聽 榪欏彧鏄垜宸ヤ綔涓殑涓涓葷粨錛岄棶棰樺緢綆鍗曪紝涔熷緢鐞愮錛屾濡傛垜鍓嶉潰鎵鎻愮殑錛屼粎浠呮槸鎻愪緵涓涓弬鑰冦?br />*****************************************************************************/



Fox 2007-12-17 19:55 鍙戣〃璇勮
]]>
MMORPG涓父鎴忎笘鐣岀殑鏋勫緩http://www.shnenglu.com/Fox/archive/2007/12/16/game_world_architecture.htmlFoxFoxSat, 15 Dec 2007 21:24:00 GMThttp://www.shnenglu.com/Fox/archive/2007/12/16/game_world_architecture.htmlhttp://www.shnenglu.com/Fox/comments/38600.htmlhttp://www.shnenglu.com/Fox/archive/2007/12/16/game_world_architecture.html#Feedback6http://www.shnenglu.com/Fox/comments/commentRss/38600.htmlhttp://www.shnenglu.com/Fox/services/trackbacks/38600.htmlAuthor: Fox

涓涓?/span>MMORPG錛?/span>Massively Multiplayer Online Role Playing Game錛夌殑鏋舵瀯鍖呭惈瀹㈡埛绔拰鏈嶅姟鍣ㄤ袱閮ㄥ垎銆傚鎴風(fēng)涓昏娑夊強(qiáng)璁$畻鏈哄浘褰㈠銆佺墿鐞嗗銆佸濯掍綋鎶鏈瓑錛屾湇鍔″櫒涓昏娑夊強(qiáng)緗戠粶閫氫俊鎶鏈佹暟鎹簱鎶鏈紝鑰屼漢宸ユ櫤鑳姐佹搷浣滅郴緇熺瓑璁$畻鏈哄熀紜瀛︾鐭ヨ瘑鐨勫簲鐢ㄤ綋鐜板湪MMORPG寮鍙戣繃紼嬩腑鐨勬柟鏂歸潰闈€?/span>

涓銆佹父鎴忎笘鐣岀殑鍒掑垎

鐞嗘兂鐘舵佺殑娓告垙涓栫晫浠呯敱涓涓畬鏁寸殑鍦烘櫙緇勬垚錛屽湪銆婇瓟鍏戒簤闇?/span> III 銆嬨併?/span> CS 銆嬭繖鏍風(fēng)殑鍗曟満娓告垙涓紝鎵鏈夌帺瀹朵綅浜庤鍦烘櫙涓紝鍦ㄧ悊璁轟笂錛屼綅浜庤鍦烘櫙涓殑浠繪剰鐜╁閮藉彲浠ョ湅鍒版父鎴忎腑鎵鏈夌帺瀹跺茍涓庝箣浜や簰錛屽嚭浜庡叕騫蟲у拰娓告垙鎬э紙鑰屼笉鏄妧鏈笂錛夌殑鑰冭檻錛屾父鎴忎腑騫朵笉浼?xì)杩欐牱鍋氥?/span>

鐒惰岋紝鐩墠鐨?/span> MMORPG 涓紝鍑犱箮娌℃湁浠諱綍涓嬈懼彲浠ュ仛鍒版暣涓父鎴忎笘鐣屽彧鍖呭惈涓涓満鏅紝鍥犱負(fù)鍦ㄤ竴嬈?/span> MMORPG 涓紝鍚屾椂鍦ㄧ嚎鐨勭帺瀹舵暟閲忔垚鐧句笂鍗冿紝鐢氳嚦鏄暟涓囦漢鍚屾椂鍦ㄤ竴涓父鎴忎笘鐣屼腑浜や簰銆備互鐜板湪鐨勭綉緇滄妧鏈拰璁$畻鏈虹郴緇燂紝榪樻棤娉曚負(fù)榪欎箞澶氱帺瀹剁殑浜や簰鎻愪緵鍗蟲椂澶勭悊銆傚洜姝わ紝 MMORPG 鐨勬父鎴忎笘鐣岃鍒掑垎涓哄ぇ灝忎笉絳夈佹暟閲忎紬澶氱殑鍦烘櫙錛屾父鎴忔湇鍔″櫒瀵逛簬榪欎簺鍦烘櫙鐨勫鐞嗗垎涓哄垎鍖哄拰鏃犵紳涓ょ銆?/span>

鍦ㄥ垎鍖哄紡鏈嶅姟鍣ㄤ腑錛屼竴涓満鏅腑鐨勭帺瀹舵棤娉曠湅鍒板彟涓涓満鏅腑鐨勭帺瀹訛紝褰撶帺瀹朵粠涓涓満鏅埌鍙﹀涓涓満鏅法瓚婃椂錛岄兘鏈変竴涓暟鎹漿縐誨拰鍔犺澆鐨勮繃紼嬶紙灝ゅ叾鏄粠涓涓垎鍖烘湇鍔″櫒璺ㄨ秺鍒板彟澶栦竴涓湇鍔″櫒鏃訛級錛岀帺瀹墮兘鏈変竴涓瓑寰呯殑鏃墮棿錛屽湪榪欐鏃墮棿鍐咃紝鏈嶅姟鍣ㄧ殑涓昏宸ヤ綔鏄疄鐜拌法瓚婄帺瀹舵暟鎹殑杞Щ鍜屽姞杞戒互鍙?qiáng)鍚庝竴涓満鏅腑鐜╁銆?/span> NPC 絳夋暟鎹殑浼犺緭錛屽鎴風(fēng)鐨勪富瑕佸伐浣滄槸瀹炵幇鏂板満鏅祫婧愮殑鍔犺澆鍜屾湇鍔″櫒閫氫俊銆備富瑕佹椂闂寸殑闀跨煭涓昏鍙栧喅浜庡悗涓涓満鏅腑璧勬簮鏁版嵁鐨勫ぇ灝忋傚垎鍖哄紡鏈嶅姟鍣ㄧ殑浼樼偣涓昏鏄悇鍒嗗尯鏈嶅姟鍣ㄤ繚鎸佺浉瀵圭嫭绔嬶紝緙虹偣鏄父鎴忕┖闂翠笉澶熷ぇ錛岃屼笖錛屼竴鏃︽煇涓垎鍖烘湇鍔″櫒涓鏈嶅姟錛屼綅浜庤鏈嶅姟鍣ㄤ笂鐨勬墍鏈夌帺瀹跺皢澶卞幓榪炴帴銆?/span>

鎵璋撴棤緙濇湇鍔″櫒錛岀帺瀹跺嚑涔庡療瑙変笉鍒板満鏅箣闂寸殑榪欑鍒囨崲錛屽湪鍦烘櫙闂存病鏈夌墿鐞嗕笂鐨勫睆闅滐紝瀵逛簬鐜╁鑰岃█錛屼紬澶氬満鏅瀯鎴愪簡涓涓法澶х殑娓告垙涓栫晫銆傚満鏅箣闂達(dá)紝鐢氳嚦鏈嶅姟鍣ㄤ箣闂粹滄病鏈変簡鈥濇槑紜殑鐣岀嚎銆傚洜姝わ紝鏃犵紳鏈嶅姟鍣ㄤ負(fù)鐜╁鎻愪緵浜嗘洿澶х殑娓告垙絀洪棿鍜屾洿鍙嬪ソ鐨勪氦浜掞紝瀹炵幇浜嗗姩鎬佽竟鐣岀殑鏃犵紳鏈嶅姟鍣ㄧ敋鑷沖彲浠ュ湪鏌愪釜鏈嶅姟鍣ㄤ腑姝㈡湇鍔℃椂錛屾寜涓瀹氱瓥鐣ュ皢璐熻澆鍔ㄦ佸垎鏁e埌鍏朵粬鏈嶅姟鍣ㄣ傚洜姝わ紝鏃犵紳鏈嶅姟鍣ㄥ湪鎶鏈笂瑕佹瘮鍒嗗尯鏈嶅姟鍣ㄦ洿鍔犲鏉傘?/span>

鐩墠鍥藉唴涓婂競鐨?/span> MMORPG 錛屽ぇ澶氶噰鐢ㄥ垎鍖哄紡鏈嶅姟鍣紝鍋氬埌鏃犵紳涓栫晫鐨勪富瑕佹湁銆婂畬緹庝笘鐣屻嬪拰銆婂ぉ涓嬭窗銆嬬瓑錛屽浗澶栫殑 MMORPG 涓紝鍍忋婇瓟鍏戒笘鐣屻嬨併?/span> EVE 銆嬬瓑錛岄兘瀹炵幇浜嗘棤緙濅笘鐣屻?/span>

鏃犵紳鏈嶅姟鍣ㄤ笌鍒嗗尯寮忔湇鍔″櫒鍦ㄦ妧鏈笂鐨勪富瑕佸尯鍒槸錛屽綋浣嶄簬鍦烘櫙 S1 涓殑鐜╁ P1 澶勪簬涓や釜錛堢敋鑷蟲洿澶氾級鍦烘櫙 S1 銆?/span> S2 鐨勮竟鐣屽尯鍩熷唴鏃訛紝瑕佷繚璇?/span> P1 鑳藉鐪嬪埌鍦烘櫙 S2 涓緩絳戙佺帺瀹躲?/span> NPC 絳夊彲鎰熺煡瀵硅薄銆傝屼笖杈圭晫鍖哄煙鐨勫ぇ灝忚澶т簬絳変簬 P1 鍙劅鐭ョ殑鑼冨洿錛屽惁鍒欏氨鍙兘鍙戠敓 S2 涓殑鍙劅鐭ュ璞$獊鐒墮棯鐜板湪 P1 瑙嗛噹涓殑寮傚父銆?/span>

鏃犵枒錛屾棤緙濅笘鐣屼負(fù)鐜╁鎻愪緵浜嗘洿浜烘у寲鍜屾洿鍏烽瓍鍔涚殑鐢ㄦ埛浣撻獙銆?/span>

浜屻佹棤緙濅笘鐣屾父鎴忔湇鍔″櫒鐨勬暣浣撴灦鏋?/span>

MMORPG 鐨勬湇鍔″櫒鏋舵瀯浠庡姛鑳戒笂涓昏鍒掑垎涓轟笁縐嶏細(xì)

1銆?/span> 鐧誨綍鏈嶅姟鍣紙 Login Server 錛?/span>

鐧誨綍鏈嶅姟鍣ㄧ敤浜庣帺瀹墮獙璇佺櫥褰曪紝騫舵牴鎹郴緇熻褰曠帺瀹朵俊鎭緱鍒板叾鎵鍦ㄨ妭鐐規(guī)湇鍔″櫒錛屽茍閫氳繃涓栫晫鏈嶅姟鍣ㄤ負(fù)鐧誨綍鐜╁鍜屽搴旇妭鐐規(guī)湇鍔″櫒寤虹珛榪炴帴銆?/span>

2銆?/span> 涓栫晫鏈嶅姟鍣紙 World Server 錛?/span>

涓栫晫鏈嶅姟鍣ㄥ皢鏁翠釜娓告垙涓栫晫鍒掑垎鎴愪笉鍚屽満鏅紝灝嗘墍鏈夊満鏅寜涓瀹氱瓥鐣ュ垎閰嶇粰鑺傜偣鏈嶅姟鍣紝騫跺鑺傜偣鏈嶅姟鍣ㄨ繘琛岀鐞嗐備笘鐣屾湇鍔″櫒鐨勫彟涓鍔熻兘鏄笌鐧誨綍鏈嶅姟鍣ㄤ氦浜掋傚洜姝わ紝涓栫晫鏈嶅姟鍣ㄦ槸鐧誨綍鏈嶅姟鍣ㄣ佽妭鐐規(guī)湇鍔″櫒鐨勬矡閫氭ˉ姊侊紝褰撶劧錛屼竴鏃︾帺瀹剁櫥褰曟垚鍔燂紝涓栫晫鏈嶅姟鍣ㄥ皢涓昏澶勭悊鑺傜偣鏈嶅姟鍣ㄩ棿鐨勯氫俊銆傚洜姝わ紝涓栫晫鏈嶅姟鍣ㄥ浜庣帺瀹舵槸閫忔槑鐨勩?/span>

3銆?/span> 鑺傜偣鏈嶅姟鍣紙 Node Server 錛?/span>

鑺傜偣鏈嶅姟鍣ㄨ礋璐g鐞嗕綅浜庤鑺傜偣鐨勬墍鏈夌帺瀹躲?/span> NPC 鐨勬墍鏈変氦浜掞紝鍦ㄦ棤緙濅笘鐣屾父鎴忎腑錛岀敱浜庤竟鐣屽尯鍩熺殑瀛樺湪錛屼竴涓妭鐐規(guī)湇鍔″櫒鐢氳嚦瑕佸鐞嗙浉閭昏妭鐐逛笂浣嶄簬杈圭晫鍖哄煙鐨勭帺瀹跺拰 NPC 鐨勪俊鎭?/span>

鍦ㄥ叿浣撳疄鐜頒笂錛屼笉鍚岀殑 MMORPG 涓轟簡渚夸簬綆$悊錛屽彲鑳借繕浼?xì)鍏锋?/span> AI 鏈嶅姟鍣ㄣ佹棩蹇楁湇鍔″櫒銆佹暟鎹簱緙撳瓨鏈嶅姟鍣ㄣ佷唬鐞嗘湇鍔″櫒絳夈?/span>

涓夈?/span> 鏃犵紳涓栫晫娓告垙鏈嶅姟鍣ㄧ殑涓昏鎶鏈渶姹?/span>

1銆?/span> 緙栫▼璇█錛?/span> C/C++ 銆?/span> SQL 銆?/span> Lua 銆?/span> Python 錛?/span>

2銆?/span> 鍥懼艦搴擄紙 Direct 3D 銆?/span> OpenGL 錛?/span>

3銆?/span> 緗戠粶閫氫俊錛?/span> WinSock 銆?/span> BSD Socket 錛屾垨鑰?/span> ACE 錛?/span>

4銆?/span> 娑堟伅銆佷簨浠躲佸綰跨▼銆?/span> GUI

5銆?/span> OS

涓夈佹棤緙濅笘鐣屾父鎴忔湇鍔″櫒闇瑕佽В鍐崇殑涓昏闂

1銆?/span> 璧勬簮綆$悊

鏃犺鏄湇鍔″櫒榪樻槸瀹㈡埛绔紝閮芥秹鍙?qiáng)鍒板ぇ閲忚祫婧愬Q氱帺瀹舵暟鎹?/span> NPC 鏁版嵁銆佹垬鏂楀叕寮忋佹ā鍨嬭祫婧愩侀氫俊璧勬簮絳夈傚綋榪欎簺璧勬簮杈懼埌涓瀹氳妯★紝鍏剁鐞嗙殑闅懼害涓嶅彲蹇借銆傝屼笖錛岃祫婧愮鐞嗙殑濂藉潖錛岀洿鎺ュ叧緋誨埌娓告垙鐨勫畨鍏ㄥ拰鐢熷懡銆?/span>

2銆?/span> 緗戠粶瀹夊叏

瀹夊叏姘歌繙鏄涓浣嶇殑錛屾垜浠棤娉曟寚鏈涙墍鏈夌殑鐜╁鍙?qiáng)鍏舵墍鎸佺殑瀹㈡埛绔案榪滄槸鍙嬪ソ鐨勩備簨瀹炰笂錛屽▉鑳佸埌娓告垙鐨勫叕騫蟲у拰瀹夊叏鎬х殑澶у鏁伴棶棰橈紝褰掓牴緇撳簳錛岄兘鏄敱浜庣綉緇滈氫俊涓瓨鍦ㄧ殑嬈洪獥鍜屾敾鍑婚犳垚鐨勶紝榪欎簺闂鍖呭惈浣嗕笉闄愪簬浜ゆ槗嬈洪獥銆佺墿鍝佸鍒躲?/span>

3銆?/span> 閫昏緫瀹夊叏

閫昏緫瀹夊叏鎸夌悊璇村簲璇ユ槸娓告垙涓渶鍩烘湰鐨勮冭檻錛岃鐩栫殑鑼冨洿涔熸渶騫挎渶鏉傘傞殢鏈烘暟緋葷粺鏄竴涓潪甯稿煎緱閲嶈鐨勯棶棰橈紝闅忔満鏁頒笉浠呬粎鐢ㄤ簬鐜╁鍙鐨勪竴浜涗換鍔$郴緇熴佹垬鏂楀叕寮忋佷漢宸ユ櫤鑳姐佺墿鍝佸緱澶辯瓑錛岃繕鍙敤浜庣綉緇滄姤鏂囧姞瀵嗙瓑銆傚洜姝わ紝闅忔満鏁扮郴緇熸湰韜殑瀹夊叏涓嶅蹇借銆傚彟澶栦竴涓父瑙佺殑閫昏緫瀹夊叏鏄帺瀹剁殑縐誨姩錛屾渶涓昏鐨勫氨鏄槻姝㈠姞閫熼嬌杞繖鏍風(fēng)殑鍙樻佹搷浣溿?/span>

4銆?/span> 璐熻澆鍧囪 

MMORPG 涓殑璐熻澆鍧囪 鍖呮嫭瀹㈡埛绔強(qiáng)鏈嶅姟鍣ㄨ祫婧愮鐞嗗拰閫昏緫澶勭悊鐨勮礋杞藉潎琛★紝鍏朵腑鏈闅鵑鐭ョ殑鏄綉緇滈氫俊鐨勮礋杞藉潎琛★紝姝e父鎯呭喌涓嬬殑緗戠粶閫氫俊鏁伴噺鏄彲浠ュ湪娓告垙璁捐鏃跺仛鍑鴻瘎浼扮殑錛屼絾鍥犳伓鎰忔敾鍑婚犳垚鐨勭綉緇滆礋杞芥槸鏃犳硶棰勬祴鐨勩傚洜姝わ紝璐熻澆鍧囪 鎵瑕佸鐞嗙殑涓昏鏄疄鏃跺姩鎬佽礋杞藉潎琛″拰鐏鵑毦鎭㈠銆傝礋杞藉潎琛¢渶瑕佽В鍐崇殑闂鍖呮嫭璐熻澆鐩戞帶銆佽礋杞藉垎鏋愩佽礋杞藉垎鍙戝拰鐏鵑毦鎭㈠銆?/span>

5銆?/span> 褰曞儚緋葷粺

褰曞儚緋葷粺鐨勬瀯寤猴紝涓昏鐢ㄤ簬閲嶇幇鍏抽敭鏁版嵁鐨勮緭鍏ヨ緭鍑猴紝濡傜帺瀹朵氦鏄撱佺帺瀹跺厖鍊鹼紝鎴栬呭綋 bug 鍑虹幇鍚庯紝涓洪昏緫鏈嶅姟鍣紙娉涙寚涓婃枃鎻愬埌鐨勬墍鏈夌被鍨嬫湇鍔″櫒錛屼富瑕佹槸鑺傜偣鏈嶅姟鍣級鐩稿簲閮ㄥ垎鍚姩褰曞儚緋葷粺銆傚緟鏀墮泦鍒拌凍澶熸暟鎹悗錛岄氳繃褰曞儚緋葷粺閲嶇幇 bug 銆備負(fù)浜嗕嬌閫昏緫鏈嶅姟鍣ㄤ笉鍙楄嚜韜椂闂達(dá)紙濡備腑鏂皟璇曠瓑錛夌殑褰卞搷錛岃繕鍙互涓撻棬璁捐蹇冭煩鏈嶅姟鍣ㄦ潵鎺у埗鏁版嵁浼犺緭銆?/span>

鍥涖佹葷粨

鍦?/span> MMORPG 涓紝鐪熸鐨?/span> bug 姘歌繙瀛樺湪浜庡皢鏉ャ備粠榪欎竴鐐瑰嚭鍙戯紝鍏充簬 MMORPG 涓父鎴忎笘鐣岀殑鏋勫緩錛屾庢牱鑻涘埢鐨勬濊冮兘涓嶄負(fù)榪囥?br />
鍙傝冭祫鏂欙細(xì)

1銆?[緹嶿 Kim Pallister緙? 瀛熷姝?絳夎瘧. 娓告垙緙栫▼綺劇補(bǔ)5, P467-474, P516. 浜烘皯閭數(shù)鍑虹増紺? 2007騫?鏈? 鍖椾含.
2銆?[緹嶿 Thor Alexander緙? 鍙叉檽鏄?璇? 澶у瀷澶氫漢鍦ㄧ嚎娓告垙寮鍙? P174-185. 浜烘皯閭數(shù)鍑虹増紺? 2006騫?2鏈? 鍖椾含.
3銆?[緹嶿 Dante Treglia緙? 寮犵 璇? 娓告垙緙栫▼綺劇補(bǔ)3, P117-122. 浜烘皯閭數(shù)鍑虹増紺? 2003騫?鏈? 鍖椾含.
4銆?[緹嶿 Mark DeLoura緙? 鐜嬫窇紺?絳夎瘧. 娓告垙緙栫▼綺劇補(bǔ)1, P90-93. 浜烘皯閭數(shù)鍑虹増紺? 2004騫?0鏈? 鍖椾含.
5銆?[緹嶿 Douglas 絳夎憲, 鏂兼槬鏅?璇? C++緗戠粶緙栫▼ 鍗?. 涓浗鐢?shù)鍔涘嚭鐗埥C? 2004騫?1鏈? 鍖椾含.
6銆?[緹嶿 Stephen D. Huston 絳夎憲, 椹淮杈?璇? ACE紼嬪簭鍛樻寚鍗? 涓浗鐢?shù)鍔涘嚭鐗埥C? 2004騫?1鏈? 鍖椾含.
7銆?[緹嶿 Erich Gamma絳夎憲, 鏉庤嫳鍐?絳夎瘧. 璁捐妯″紡. 鏈烘宸ヤ笟鍑虹増紺? 2000騫?鏈? 鍖椾含.
8銆?娓告垙寮曟搸鍏ㄥ墫鏋? http://bbs.gameres.com/showthread.asp?threadid=101293.
9銆?鏈嶅姟鍣ㄧ粨鏋勬帰璁細(xì)鐧誨綍鏈嶇殑璐熻澆鍧囪 . http://gamedev.csdn.net/page/351491d0-05ad-48a4-85e1-77870bc1eef3.
10銆佹湇鍔″櫒緇撴瀯鎺㈣錛氭渶緇堢殑緇撴瀯. http://gamedev.csdn.net/page/28695655-974c-4291-8ac4-2589c4e770d3.
11銆佽皥璋堢綉緇滄父鎴忔湇鍔″櫒瑙e喅鏂規(guī). http://www.beareyes.com.cn/2/lib/200411/08/20041108102.htm.
12銆佽礋杞藉潎琛♀斺斿ぇ鍨嬪湪綰跨郴緇熷疄鐜扮殑鍏抽敭(涓嬬瘒)錛堟湇鍔″櫒闆嗙兢鏋舵瀯鐨勮璁′笌閫夋嫨錛? http://blog.csdn.net/sodme/archive/2005/06/15/394576.aspx.
13銆佷簯椋庣殑BLOG. http://blog.codingnow.com/

/*****************************************************************************
聽 浠?:00鍒?:00錛屽湪鍐欒繖綃囬殢絎旂殑榪囩▼涓紝鎴戠炕鎵俱佺偣鍑葷潃涓婇潰鐨勮繖浜涜祫鏂欙紝鍏跺疄榪樻湁鏇?br />聽 澶氱殑璧勬枡錛屾病鏈夎鍦ㄤ笂闈紝綆楁槸涓哄紑棰樺仛鐨勫噯澶囥傜幇鍦ㄤ緷鐒舵槸鐫℃剰鍏ㄦ棤銆傝秺鍐欒秺瑙夊緱
聽 涓嶅錛岃秺鎯寵秺瑙夊緱榪樻湁鏇村涓滆タ鍐欎笉鍑烘潵鈥︹?br />聽 PS錛氳繖浜涜祫鏂欏ぇ閮戒笉鏄涓嬈$炕錛屼互鍓嶇湅榪欎簺璧勬枡澶у鍙槸鍗曠函鐨勭湅錛岀幇鍦ㄦ湁鐩殑鐨?br />聽 鐪嬶紝鎵嶈寰楅兘鍐欏緱寰堟湁鍛抽亾銆備笉綆℃槸涓嶆槸鍚屾剰鎵鏈夎鐐癸紝閮戒笉鏄湰鏂囪璁虹殑閲嶇偣銆?br />*****************************************************************************/


Fox 2007-12-16 05:24 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区三区.www| 亚洲经典三级| 久久国产欧美日韩精品| 亚洲特级毛片| 国产精品夜色7777狼人| 性做久久久久久免费观看欧美| 一本色道久久综合一区| 国产精品啊v在线| 久久99伊人| 久久久青草婷婷精品综合日韩| 伊人精品成人久久综合软件| 欧美激情一区二区三区不卡| 欧美日韩国产二区| 欧美一级在线播放| 老司机久久99久久精品播放免费| 亚洲精选视频免费看| 亚洲午夜羞羞片| 在线观看日韩欧美| 亚洲最新视频在线播放| 国产综合av| 亚洲精品少妇网址| 国内精品久久久久影院 日本资源| 欧美大香线蕉线伊人久久国产精品| 欧美国产日韩亚洲一区| 欧美亚洲三区| 欧美激情久久久久久| 亚洲欧美日韩一区二区| 麻豆91精品91久久久的内涵| 亚洲一区二区三区在线播放| 久久久久久精| 亚洲欧美日韩电影| 欧美韩日视频| 免费观看一级特黄欧美大片| 欧美视频在线免费看| 欧美国产精品人人做人人爱| 国产精品私人影院| 亚洲精品视频在线观看免费| 国精品一区二区| 一区二区三区日韩欧美精品| 亚洲国产色一区| 久久国产精品高清| 日韩一级视频免费观看在线| 国产一区二区在线免费观看| 亚洲黄色片网站| 国产视频欧美视频| 中文一区字幕| 国产精品99久久久久久久久久久久 | 精品电影一区| 午夜影视日本亚洲欧洲精品| 中文在线资源观看网站视频免费不卡| 久久综合九色| 久久午夜视频| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲素人在线| 亚洲欧美日韩国产| 国产精品麻豆欧美日韩ww| 亚洲精品人人| 国产精品99久久久久久久女警 | 国产真实久久| 久久精品国产一区二区三区| 久久超碰97人人做人人爱| 国产乱子伦一区二区三区国色天香| 日韩网站在线观看| 亚洲视频在线播放| 欧美视频免费在线| 亚洲午夜久久久久久久久电影院| 亚洲一区二区三区精品在线观看| 欧美日韩1区| 国产精品99久久99久久久二8| 一区二区欧美日韩| 欧美系列一区| 亚洲欧美日韩精品久久久| 欧美在线视频日韩| 韩日视频一区| 欧美mv日韩mv国产网站| 91久久久国产精品| 亚洲性夜色噜噜噜7777| 国产欧美精品一区二区色综合 | 亚洲国产高清高潮精品美女| 亚洲日本欧美天堂| 欧美日韩高清在线观看| 99精品欧美一区二区蜜桃免费| 亚洲午夜视频在线| 国产酒店精品激情| 久久夜色精品国产| 亚洲精品一区二区三区99| 午夜精品久久| 亚洲国产成人一区| 欧美色图天堂网| 欧美一区二区免费观在线| 欧美ab在线视频| 一区二区三区毛片| 国产一区二区三区免费不卡| 美女爽到呻吟久久久久| 宅男在线国产精品| 欧美电影美腿模特1979在线看| 99国产精品99久久久久久粉嫩| 国产精品日韩欧美大师| 蜜臀a∨国产成人精品| 日韩午夜精品视频| 久久先锋资源| 亚洲欧美国产精品专区久久| 国外成人性视频| 欧美日韩精品一区二区在线播放 | 国产精品99久久99久久久二8| 欧美在线视频观看| 亚洲美女性视频| 国产一区二区精品在线观看| 麻豆精品视频在线观看| 亚洲欧美影音先锋| 亚洲人久久久| 久久一二三四| 欧美影院视频| 夜夜嗨一区二区| 亚洲福利视频网| 国产欧美欧美| 欧美婷婷久久| 欧美高清在线视频观看不卡| 久久九九精品99国产精品| 一区二区三区视频在线播放| 亚洲动漫精品| 免费观看不卡av| 久久人人97超碰国产公开结果 | 免费国产一区二区| 久久久久综合网| 欧美自拍丝袜亚洲| 午夜欧美不卡精品aaaaa| 日韩性生活视频| 亚洲高清一区二| 在线日韩日本国产亚洲| 国内精品视频久久| 国产小视频国产精品| 国产精品欧美日韩| 国产精品色婷婷| 国产精品美女www爽爽爽| 欧美日韩一区二区在线播放| 欧美精品三区| 欧美区视频在线观看| 欧美大片网址| 欧美激情视频给我| 欧美片在线观看| 欧美婷婷六月丁香综合色| 欧美视频三区在线播放| 欧美午夜电影在线观看| 欧美三级电影网| 国产精品久久久久久久久久ktv| 欧美猛交免费看| 欧美午夜视频网站| 国产精品自在在线| 韩国成人理伦片免费播放| 狠狠色综合网| 日韩天天综合| 亚洲一区二区三区三| 香蕉久久夜色精品| 久久久精品性| 欧美激情麻豆| 日韩视频免费观看| 亚洲一区在线视频| 久久精品国产第一区二区三区| 久久久久国产精品午夜一区| 男女激情视频一区| 欧美日韩日日骚| 国产日韩一区二区三区在线播放 | 欧美日韩国产在线播放| 国产精品一二三| 在线精品视频免费观看| 99精品国产99久久久久久福利| 亚洲女优在线| 免费日韩av| 99精品国产福利在线观看免费| 午夜视频在线观看一区二区| 老司机午夜精品视频| 欧美日韩在线不卡一区| 极品少妇一区二区三区精品视频| 亚洲欧洲三级电影| 午夜精品福利电影| 亚洲第一视频网站| 欧美日韩国产精品专区| 久久精品2019中文字幕| 欧美成人精品一区二区三区| 99ri日韩精品视频| 久久一区精品| 国产精品久久久久久久久果冻传媒 | 亚洲黄色成人网| 欧美一级视频| 欧美日韩成人| 在线看片成人| 欧美专区18| 亚洲视频一区二区| 欧美激情第五页| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲一区二区免费| 亚洲福利视频在线| 久久精品国产清高在天天线| 欧美午夜电影完整版| 99riav国产精品| 亚洲国产成人精品女人久久久| 午夜免费日韩视频| 国产精品女人网站| 亚洲性人人天天夜夜摸|