锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏈鍚庢彁涓鍙ワ紝鎴戜滑鍦ㄤ笂鍥劇殑AS鍜孎S涓兘鐪嬪埌浜嗙綉緇滅粍浠訛紝濡傛灉AS涔熼噰鐢═cp錛岄偅涔堣繖涓や釜緇勪歡鏄浉鍚岀殑錛屼篃灝辨槸璇碩cp緇勪歡鍙互寰堟柟渚跨殑澶嶇敤銆?nbsp; 鎰熻阿鍏蟲敞錛?/p>
RentTcpStream鏂規硶涓殑serviceKey鍙傛暟鍙嶆槧浜嗚繖鏍蜂竴涓簨瀹烇細涓庝竴涓?/span>AS鐩歌繛鐨勫涓?/span>FS涓紝姣忎釜FS鍔犺澆鐨勫姛鑳芥彃浠跺彲浠ユ槸涓嶄竴鏍風殑銆?/span> 鎺ヤ笅鏉ヨ冭檻榪欐牱涓涓棶棰橈紝褰撲竴涓姹傚埌鏉ワ紝榪欎釜璇鋒眰鍙互琚?/span>FS1銆?/span>FS2銆?/span>FS3澶勭悊錛岄偅涔圛TcpPoolsManager鍒板簳榪斿洖鍝釜榪炴帴姹犱腑鐨勮繛鎺ヤ簡錛熺瓟妗堟槸璐熻澆鏈灝忕殑閭d釜FS涓婄殑榪炴帴銆?br> 榪欐槸鎬庝箞鍋氬埌鐨勪簡錛熷叾瀹炲緢綆鍗曘傛瘡涓?/span>FS閮藉畾鏃訛紙姣斿涓縐掍竴嬈★級鍦版妸鑷繁鐨勮礋杞斤紙CPU鍒╃敤鐜囧拰鍐呭瓨鍒╃敤鐜囷級閫氱煡緇?/span>AS錛岄氱煡緇?/span>AS鐨勬柟寮忓彲浠ユ湁澶氱錛屾瘮濡?/span>.Net Remoting銆?/span>ESFramework涓湁涓涓О涓鴻繛鎺ユ睜璋冨害鍣?/span>ITcpPoolScheduler鐨勪笢涓滐紝瀹冭褰曚簡姣忎釜FS瀹炴椂鐨勮礋杞姐傝繖鏍峰綋涓涓姹傚埌鏉ユ椂錛岃繛鎺ユ睜綆$悊鍣↖TcpPoolsManager浼氳姹傝繛鎺ユ睜璋冨害鍣ㄤ粠浼楀鐨?/span>FS涓夊嚭涓涓?#8220;婊¤凍鏉′歡”涓旇礋杞芥渶灝忕殑FS銆傝繖閲岀殑“婊¤凍鏉′歡”涓昏鎸囩殑鏄搴旂殑FS涓婃湁鑳藉鐞嗚璇鋒眰鐨勫姛鑳芥彃浠躲傚疄鐜拌繖縐嶈皟搴﹂渶瑕佺殑鏀寔鐨勫悇涓浉浜掑崗浣滅殑緇勪歡鐨勮仈緋誨浘澶ц嚧濡備笅錛?/span> 榪炴帴姹犺皟搴﹀櫒ITcpPoolScheduler鐨勫畾涔夊涓嬶細 涓轟簡浣胯礋杞藉潎琛$殑鏁堟灉鏇村ソ錛?/span>ITcpPoolScheduler鍙互瀹炵幇鐨勯潪甯稿鏉傦紝姣斿榪涜鍘嗗彶璁板綍緇熻銆佸垎鏋愩侀嫻嬬瓑銆?/span>ESFramework緇欏嚭浜嗛粯璁ゅ疄鐜?/span>TcpPoolScheduler銆?/span> 鍦ㄧ粍浠惰仈緋誨浘涓繕鏈変竴涓狪PoolEndPointsDisplayer緇勪歡錛屽畠鐢ㄤ簬鍦?/span>UI涓婃樉紺烘瘡涓姛鑳芥湇鍔″櫒鐨勮緇嗕俊鎭拰鎬ц兘鏁版嵁銆?br> 榪樻湁涓涓渶瑕佽緗殑灞炴?/span>ITcpPoolHelper錛?br> 鐢變簬榪欎釜鎺ュ彛鎻愪緵浜嗘瘡涓姛鑳芥湇鍔″櫒璇︾粏淇℃伅錛屾墍浠ヨ繖涓帴鍙g殑瀹炵幇鍙互鐩存帴鐢卞墠闈㈡彁鍒扮殑FS綆$悊鍣ㄩ『甯﹀疄鐜般?/span>
鎵句簡濂藉嚑澶╀簡錛屽緢澶氳祫婧愰兘涓嬩笉鍔?br>
浠婂ぉ濂戒笉瀹規槗涓嬩簡涓涓紝浣嗘槸棣欐腐鐗堢殑錛屼笖瀹夎鍒伴夋嫨鐩樼鏃訛紝閿洏鎵鏈夐敭閮戒笉鑳戒嬌鐢紝鎵浠ヨ繕鏄棤娉曞畨瑁?br>
璋㈣阿鍚勪綅澶у摜澶у甯府蹇欙紝灝忓紵鎰熸縺涓嶅敖錛?img src ="http://www.shnenglu.com/twzheng/aggbug/109710.html" width = "1" height = "1" />
]]>
鍓嶉潰鐨勪袱綃囨枃绔犳垜浠凡緇忎粙緇嶄簡Tcp榪炴帴姹犲拰Tcp榪炴帴姹犵鐞嗗櫒錛屽茍涓斿紩鍏ヤ簡ITcpPool鎺ュ彛錛岃繖涓帴鍙e彲浠ュ皢鍗曚釜榪炴帴姹犲拰涓緇勮繛鎺ユ睜緇熶竴璧鋒潵錛屼嬌瀹冧滑鏈夌浉鍚岀殑澶栭儴浣跨敤鏂瑰紡銆傜幇鍦ㄦ垜浠渶瑕佽冭檻鐨勯棶棰樻槸錛屽綋娑堟伅鍒嗘淳鍣ㄥ垎媧句竴涓帴鏀跺埌鐨勮姹傛椂錛屽鏋滆繖涓姹傞渶瑕佽FS涓婄殑鏌愪釜鍔熻兘鎻掍歡澶勭悊錛岄偅涔堟秷鎭垎媧懼櫒鏄浣曞皢榪欎釜娑堟伅鍒嗘淳鍒板搴旂殑FS涓婂幓鐨勶紵
鍥為【浠嬬粛娑堟伅鍒嗘淳鍣?/font>鏃剁敾鍑虹殑鍚勬秷鎭粍浠惰仈緋誨浘錛屾垜浠潪甯歌嚜鐒剁殑鎯沖埌錛屽垱寤轟竴涓秷鎭鐞嗗櫒錛岃繖涓秷鎭鐞嗗櫒灝嗚姹傛秷鎭氳繃Tcp榪炴帴姹犺漿鍙戠粰瀵瑰簲FS澶勭悊銆傝繖鏍風殑涓涓秷鎭鐞嗗櫒縐頒負“鍩轟簬Tcp榪炴帴姹犵殑娑堟伅澶勭悊鍣?#8221;錛屽畠鍦ㄦ秷鎭粍浠惰仈緋誨浘涓殑浣嶇疆濡備笅錛?br>
褰撴湁涓涓姹傝鍒嗘淳鍒板熀浜庤繛鎺ユ睜鐨勬秷鎭鐞嗗櫒鏃訛紝瀹冨氨浠嶵cp榪炴帴姹犱腑Rent涓涓狽etworkStream錛岀劧鍚庡彂閫佽姹傦紝騫跺皢鎺ユ敹鍒扮殑鍥炲榪斿洖緇欐秷鎭垎媧懼櫒銆傚熀浜庤繛鎺ユ睜鐨勬秷鎭鐞嗗櫒浠嶇劧瀹炵幇浜咺DataDealer鎺ュ彛錛屽叾鍊熷姪ITcpPool緇勪歡鏉ュ疄鐜板姛鑳姐備笅闈㈢粰鍑虹畝鍗曚吉鐮侊紝鍥犱負鏁翠釜瀹炵幇姣旇緝澶嶆潅錛堥敊璇鐞嗐佸紓甯稿鐞嗐丷eRent鏈哄埗絳夛級錛屼唬鐮佹瘮杈冨錛屾墍浠ュ氨涓嶅垪鍑烘潵浜嗭紝澶у鍙浜嗚В浜嗕富瑕佺殑鎬濇兂灝辮浜嗭紝鑰岃繖涓濇兂鏄瘮杈冪畝鍗曠殑銆?
{
/*
1.Rent TcpStream
2.Send Request
3.Recieve Response
4.Return Response
*/
}
鍦‵S涓紝Tcp緗戠粶緇勪歡鍜屽姛鑳芥彃浠朵箣闂存槸閫氳繃铏氱嚎榪炴帴璧鋒潵鐨勶紝涔熷氨鏄緗戠粶緇勪歡騫朵笉浼氱洿鎺ヤ笌鍔熻兘鎻掍歡浜や簰錛屽畠浠箣闂翠粛鐒跺瓨鍦ㄨ繖涓涓航甯︼紝榪欏氨鏄秷鎭鐞嗗櫒宸ュ巶錛岄偅涔堢敤浜庣鐞嗗姛鑳芥彃浠剁殑宸ュ巶錛屽氨鍙仛“鍔熻兘鎻掍歡澶勭悊鍣ㄥ伐鍘侳unAddinDealerFactory”錛岃繖灝嗗湪涓嬫枃涓粙緇嶃?nbsp;
涓婃枃宸茬粡璁插埌錛?span lang=EN-US>Tcp榪炴帴姹犵鐞嗗櫒涓烘垜浠殑搴旂敤榪涜浜嗗緢澶氬鏉傜殑綆$悊錛屾瘮濡傚姛鑳芥湇鍔″櫒鐨勮皟搴︼紙瀹炵幇FS鐨勮礋杞藉潎琛★級銆佽繛鎺ユ睜鐨勫姩鎬佹坊鍔?/span>/縐婚櫎銆佹帶鍒舵瘡涓繛鎺ユ睜鐨勭浉鍏沖弬鏁板湪UI涓婄殑鏄劇ず絳夛紝騫朵笖榪炴帴姹犵鐞嗗櫒涓庡崟涓繛鎺ユ睜鎷ユ湁涓鏍風殑鎺ュ彛ITcpPool銆傛垜浠厛鍥為【涓涓嬭繖涓帴鍙o細
2 {
3 RentStreamResult RentTcpStream(int poolTypeKey ,int serviceKey ,out NetworkStream stream ,out int serverID) ;//poolTypeKey琛ㄧず鏌愪釜鍩庡競錛宻erviceKey琛ㄧず鏌愰」鏈嶅姟
4 void GiveBackTcpStream(int streamHashCode ,int serverID) ;//灝唗cp榪炴帴瑙勮繕緇欒繛鎺ユ睜
5 void SetStreamDamaged(int streamHashCode ,int serverID) ;//poolKey濡傛灉涓嶆槗淇濆瓨錛屽垯姝ゅ綆鍗曠殑浼?1鍗沖彲
6
7 event CallBackCountChanged ActiveConnectionCountChanged ;
8 event CallBackPoolStateChanged PoolStateChanged ;
9 }
10
姣斿錛屼笂鍥句腑鐨?/span>3涓?/span>FS涓彧鏈?/span>FS1鍔犺澆浜嗗墠闈粙緇嶇殑“澶╂皵棰勬祴鏈嶅姟”鎻掍歡錛岄偅涔堝綋涓涓?#8220;澶╂皵棰勬祴鏈嶅姟”璇鋒眰鍒拌揪AS鏃訛紝AS灝卞彧鑳戒粠涓?/span>FS1涔嬮棿鐨勮繛鎺ユ睜涓?/span>Rent涓涓?/span>Tcp榪炴帴錛岃屼笉鏄粠FS2鎴?/span>FS3銆?/span>RentTcpStream鏂規硶鐨?/span>out鍙傛暟serverID琛ㄦ槑浜嗚繖鏉¤繛鎺ユ槸鎸囧悜鍝釜FS鐨勩?/span>
鍥句腑IServerPerformanceMonitor鏄敤浜庣洃鎺ф湰鍦版湇鍔″櫒鎬ц兘鐨勭粍浠訛紝瀹冨彲浠ュ畾鏃跺彂甯冩湰鏈嶅姟鍣ㄧ殑鎬ц兘鏁版嵁錛堜富瑕佹槸CPU鍒╃敤鐜囧拰鍐呭瓨鍒╃敤鐜囷級錛屽叾瀹氫箟濡備笅錛?br>
2 {
3 void Start() ;
4 void Stop() ;
5
6 int RefreshSpanSecs{get ;set ;}
7
8 event CBackServerPerformance ServerPerformanceDataRefreshed ;
9 }
11
12 public delegate void CBackServerPerformance(ServerPerformance performance) ;
13 public class ServerPerformance
14 {
15 public float CpuUsagePercent ;
16 public float MemoryUsagePercent ;
17 }
2 {
3 //浠ヤ笅鏂規硶灞炴т粎浠呯敱澶氳繛鎺ユ睜綆$悊鑰呰皟鐢?/span>
4 int GetNextTcpPool(int poolTypeKey) ; //榪斿洖鐨勬槸鏌愯繛鎺ユ睜鐨勬湇鍔$鐐圭殑serverID 錛屽鏋滄病鏈夊彲鐢ㄧ殑榪斿洖-1
5 int GetNextTcpPool(int poolTypeKey ,int serviceKey) ;
6
7 void Initialize() ;
8 void Dispose() ;//榪樺師鍒版湭鍒濆鍖栫殑鐘舵?/span>
9 void SetServerState(int serverID ,bool activated) ;
10 void AddServer(int serverID) ;
11 void RemoveServer(int serverID) ;
12
13
14 //浠ヤ笅鏂規硶灞炴х敱澶栭儴鎸囧畾鎴栬皟鐢?/span>
15 void SetPerformance(int serverID ,float cpuUsage ,float memUsage) ;
16 ITcpPoolHelper TcpPoolHelper{set ;}
17 }
2 {
3 void RegisterFs(int serverID ,string serverName ,IPEndPoint ipe ,int exceptCount) ;
4 void UnRegisterFs(int serverID) ;
5 void SetFsState(int serverID ,bool activated) ;
6 void SetActiveCount(int serverID ,int activeCount) ;
7 void UpdateFsPerformance(int serverID ,float cpuUsage ,float memUsage) ;
8 void Clear() ;
9 }
FS綆$悊鍣ㄧ鐞嗚繛鎺ヤ笂鏈?/span>AS鐨勬瘡涓姛鑳芥湇鍔″櫒錛岃繖灝嗗湪鍚庢枃涓鍒般?br> 闄や簡ITcpPool鎺ュ彛錛岃繛鎺ユ睜綆$悊鍣ㄨ繕瀹炵幇浜?/span>ITcpPoolsManager鎺ュ彛錛?/p>
2 {
3 string TcpPoolSchedulerTypeString{set ;} //"ESFramework.Network.TcpPool.TcpPoolScheduler ,ESFramework"
4 ArrayList PoolEndPointList{set ;} //榪炴帴姹犵殑鏈嶅姟绔疨oolEndPointInfo鍒楄〃
5 int ReconnectSpan{get ;set ;} // 鍒嗛挓
6
7 void Initialize() ; //鍒濇寤虹珛榪炴帴姹?/span>
8 void Dispose() ; //榪樺師鍒版病鏈夊垵濮嬪寲鐨勭姸鎬?/span>
9 void AddPool(PoolEndPointInfo info) ;
10 void RemovePool(int serverID) ;
11
12 void DisposePoolConnections(int serverID) ;//緙栧彿涓簊erverID鐨勬湇鍔″櫒宸插仠姝紝鎵浠ラ噴鏀懼搴旂殑Pool錛屼絾鏄笉鍒犻櫎姹狅紝浠嶇劧瀹氭椂閲嶈繛
13 void ReconnectPool(int serverID) ; //鏇懼仠姝㈢殑鏈嶅姟鍣ㄥ凡鍚姩瀹屾瘯錛屾墍浠ュ彲浠ラ噸榪炰簡
14
15 /// <summary>
16 /// 鍙洿鎺ヤ嬌鐢?nbsp;ESFramework.Network.TcpPool.PoolEndPointsDisplayer
17 /// </summary>
18 IPoolEndPointsDisplayer PoolEndPointsDisplayer{set ;}
19
20 //鐢盜TcpPoolScheduler浣跨敤
21 void SetPerformance(int serverID ,float cpuUsage ,float memUsage) ;
22 ITcpPoolHelper TcpPoolHelper{set ;} //鍙敱ESFramework.Architecture.LBS.FourTier.FsManager鎻愪緵
23 }
2 {
3 bool ContainsService(int serverID ,int serviceKey) ;
4 bool ServerIsTheType(int serverID ,int destType) ;
5 bool ServerIsCompatible(int serverID ,int destType ,int serviceKey) ;
6 string GetServerNameByID(int serverID) ;
7 }
ITcpPoolsManager鏄竴涓瘮杈冨鏉傜殑緇勪歡錛屽畠闇瑕佹秹鍙婂埌澶氫釜緇勪歡鐨勫崗浣溿傛墍浠ュ鏋滅湅瀹岃繖綃囨枃绔狅紝浠嶇劧榪樻湁浜涗笉娓呮鐨勫湴鏂癸紝鏄緢姝e父鐨勩傚湪鍚庨潰緋誨垪鏂囩珷鐨勭戶緇榪頒腑錛岃繖浜涗笉娓呮櫚鐨勫湴鏂逛細鎱㈡參鎷ㄥ紑榪烽浘銆?br>
鎰熻阿鍏蟲敞銆?br>
]]>
鍑℃槸甯︽湁“姹?#8221;鐨勶紝姣斿鏁版嵁搴撹繛鎺ユ睜銆佸璞℃睜銆佺紦鍐插尯姹狅紙鍚庨潰鍙互鐪嬪埌IBuffPool錛夌瓑絳夛紝閮芥槸涓轟簡閬垮厤璧勬簮鐨勫弽澶嶅垱寤?/span>/閿姣佹墍甯︽潵鐨勫紑閿銆傞渶瑕佷負鍝簺璧勬簮瀵硅薄寤虹珛“姹?#8221;浜嗭紵榪欎簺璧勬簮瀵硅薄閫氬父絎﹀悎涓嬮潰鍑犱釜鐗規э細
錛?錛?/span>鍦ㄥ簲鐢ㄤ腑闇瑕佸弽澶嶇殑琚垱寤?/span>/閿姣併?br>錛?錛?/span>鍒涘緩/閿姣佺殑寮閿姣旇緝澶?br>錛?錛?/span>搴旂敤涓粰瀹氭椂鍒伙紝瀵硅璧勬簮瀵硅薄鐨勬暟閲忚姹傛瘮杈冨ぇ
錛?錛?/span>璧勬簮瀵硅薄鏈濂芥槸鏃犵姸鎬佺殑錛?/span>Stateless錛夛紝榪欐牱鏂逛究鐩存帴澶嶇敤
AS錛?a >鍥為【錛?/span>灝嗘墍鏈夌殑鍔熻兘鏈嶅姟璇鋒眰杞彂緇欎負璇?/span>AS鎻愪緵鏈嶅姟鐨?/span>FS緹や腑鐨勪竴涓紙鍙傝銆傘傘傦級錛岀劧鍚?/span>FS灝嗚姹備氦緇欏搴旂殑鍔熻兘鎻掍歡澶勭悊銆傞偅涔?/span>AS鍜?/span>FS涔嬮棿鐨勯氫俊閫氳繃浠涔堟柟寮忚繘琛屼簡錛熷彲閫夌殑鏂瑰紡鏈?/span>.netRemoting銆?/span>WebService銆?/span>Tcp/Udp絳夈傚熀浜庢晥鐜囧拰鍑嗙‘鎬х殑鑰冭檻錛?/span>WebService鍜?/span>Udp鏄笉澶у悎閫傜殑銆傞偅涔?/span>TCP鍜?/span>.netRemoting錛屽埌搴曢夌敤鍝釜錛熸垜浠煡閬?/span>.netRemoting搴曞眰涔熸槸鍩轟簬Tcp鎴?/span>Http鍗忚鐨勶紝涓轟簡鍋氬埌妯℃嫙鏈湴鏂規硶璋冪敤鐨勬柟寮忥紝.NETRemoting涔熷仛浜嗗緢澶氳漿鎹㈢殑鎿嶄綔錛堝爢鏍堝撫銆婏紳銆嬫秷鎭級錛屽鑷翠簡涓浜涘紑閿錛岃岀洿鎺ヤ嬌鐢?/span>Tcp鍒欏彲浠ラ伩鍏嶏紝鑰屼笖AS鍜?/span>FS涔嬮棿鐨勬秷鎭殑鏍煎紡鏄吋瀹圭殑錛堜富瑕佹槸浣跨敤浜嗗畬鍏ㄧ浉鍚岀殑娑堟伅澶達紝榪欏氨澶熶簡錛夛紝涔熷氨鏄涓鏉℃秷鎭粠瀹㈡埛绔彂鍑猴紝鍙互涓嶉渶鍋氫換浣曡漿鎹㈠氨鐩存帴琚?/span>FS鐨勫姛鑳芥彃浠跺鐞嗭紙鍔犲瘑銆佸帇緙╀笉璁″湪鍐咃級銆?br>
濡備綘鎵鎯籌紝ESFramework鎺ㄨ崘鐨勬柟寮忔槸AS鍜?/span>FS鐩存帴閫氳繃浣庡眰鐨?/span>Tcp榪涜閫氫俊銆備負浜嗛伩鍏?/span>Tcp榪炴帴涓嶆柇寤虹珛銆侀攢姣佹墍甯︽潵鐨勫紑閿錛?/span>AS鍜?/span>FS閫氫俊鍓嶏紝鍙互寤虹珛Tcp榪炴帴姹犮傛湰鏂囧氨鍏蟲敞Tcp榪炴帴姹犵殑鍘熺悊鍜屽疄鐜般?br>
Tcp榪炴帴姹犱腑瀛樻斁鐨勬槸Tcp榪炴帴鈥曗曞嵆NetworkStream瀵硅薄錛屽綋搴旂敤闇瑕佷嬌鐢ㄦ椂錛屽氨浠?/span>Tcp榪炴帴姹犱腑縐熷?#8220;Rent”涓鏉¤繛鎺ワ紝鐢ㄥ畬鍚庡啀褰掕繕“GiveBack”緇欒繛鎺ユ睜銆?
AS鍜屾瘡涓?/span>FS涔嬮棿閮芥湁涓涓繛鎺ユ睜錛屾瘡涓姛鑳芥湇鍔″櫒鐨勫尯鍒嗘槸閫氳繃ServerID鏉ョ殑錛屾墍浠ヨ繛鎺ユ睜涔熸湁涓涓?/span>ServerID灞炴ф爣蹇椾簡鏈繛鎺ユ睜鏄笌鍝釜FS鐩歌繛鐨勩?/span>ReconnectSpan灞炴ц〃鏄庤繛鎺ユ睜瑕佹敮鎸侀噸榪炴満鍒訛紝鍗沖綋榪炴帴姹犱腑鐨勬墍鏈夎繛鎺ラ兘鏂紑鍚庯紙鍙兘鏄?/span>FS鎺夌嚎寮曡搗鐨勶級錛岃繛鎺ユ睜搴旇兘瀹氭椂閲嶈繛FS錛岀洿鑷寵姹犱腑鐨勬墍鏈夎繛鎺ラ噸鏂板緩绔嬨?br> 濡傛灉搴旂敤浠庤繛鎺ユ睜Rent浜嗕竴鏉¤繛鎺ワ紝鐒跺悗鍦ㄤ嬌鐢ㄧ殑榪囩▼涓榪炴帴鏂紑浜嗭紝鍒欏簲鐢ㄥ簲璇ヨ皟鐢ㄨ繛鎺ユ睜鐨?/span>SetStreamDamaged鏂規硶閫氱煡榪炴帴姹犺榪炴帴宸蹭笉鍙敤銆?/span>RentTcpStream鏂規硶鍜?/span>GiveBackTcpStream鏂規硶鏄垜浠渶甯哥敤鐨勭鍊?/span>/褰掕繕榪炴帴鐨勬柟娉曚簡銆?br> 娉ㄦ剰錛屽緢澶氭柟娉曠殑鍙傛暟涓湁streamHashCode鍙傛暟錛屽畠鏄?/span>NetworkStream瀵硅薄鐨?/span>Hashcode錛岀郴緇熶腑鐨勬瘡涓?/span>NetworkStream瀵硅薄鐨?/span>HashCode鏄笉鍚岀殑錛屽茍涓旓紝瀹冪殑HashCode鍦?/span>NetworkStream瀵硅薄鐨勬暣涓敓鍛芥湡闂翠笉鍙橈紝鎵浠ュ彲浠ヤ嬌鐢?/span>HashCode鍞竴鏍囧織姣忎釜榪炴帴銆?/span>
浼間箮錛?/span>ITcpStreamPool鎺ュ彛宸茬粡鍙嶆槧浜嗕竴涓繛鎺ユ睜鐨勬墍鏈変笢瑗匡紝鏄殑銆傞偅涔?/span>ITcpPool鎺ュ彛鍙堣搗浠涔堜綔鐢ㄤ簡錛熺幇鐪嬬湅ITcpPool鐨勬牱瀛愶細
浣犲彲鑳藉凡緇忓彂鐜幫紝ITcpPool涓殑鎵鏈夊厓绱犲湪ITcpStreamPool鎺ュ彛涓兘鍙互鎵懼埌瀵瑰簲鐗╋紝鍙槸鏈変簺鏂規硶鐨勫弬鏁板彉澶嶆潅浜嗐傝繖涓昏鏄洜涓?span lang=EN-US>ITcpStreamPool鎺ュ彛閽堝鐨勬槸涓涓狥S錛岃?span lang=EN-US>ITcpPool鍙兘鏄拡瀵逛竴涓狥S涔熷彲鑳芥槸涓緇凢S銆傚綋ITcpPool鑳屽悗鏄竴緇凢S鏃訛紝灝?/span>闇瑕佸弬鏁癝erverID鏉ュ尯鍒嗘瘡涓涓狥S銆?/span>鎴戜滑鐭ラ亾錛?/span>AS鍜屽搴旂殑姣忎釜FS涔嬮棿閮戒嬌鐢ㄤ竴涓?/span>Tcp榪炴帴姹犻氫俊錛?br>
鎵鏈夌殑榪欎簺榪炴帴姹犻渶瑕佽綆$悊璧鋒潵錛?/span>ESFramework涓殑ITcpPoolsManager錛?/span>榪炴帴姹犵鐞嗗櫒錛夌粍浠跺疄鐜頒簡瀵瑰涓?/span>Tcp榪炴帴姹犵殑綆$悊銆備負浜嗘妸榪炴帴姹犵鐞嗗櫒鍜屽崟涓繛鎺ユ睜緇熶竴璧鋒潵錛屼嬌瀹冧滑鏈夌浉鍚岀殑澶栭儴鎺ュ彛錛屾墍浠ュ紩鍏ヤ簡ITcpPool鎺ュ彛銆?br> 榪欐牱鍋氱殑濂藉鏄紝鍦ㄥ簲鐢ㄤ腑鐩存帴浣跨敤ITcpPool鎺ュ彛灝卞彲浠ヤ簡錛岃屼笉鐢ㄥ叧蹇冭繖涓帴鍙h儗鍚庢槸涓涓?#8220;鍗曚釜榪炴帴姹?#8221;錛堝搴斿崟涓?/span>FS錛夎繕鏄敱榪炴帴姹犵鐞嗗櫒綆$悊鐨?#8220;涓緇勮繛鎺ユ睜”錛堝搴斿涓?/span>FS錛夈傝屼笖ITcpPoolsManager涓烘垜浠殑搴旂敤榪涜浜嗗緢澶氬鏉傜殑綆$悊錛屾瘮濡傚姩鑳芥湇鍔″櫒鐨勮皟搴︼紙瀹炵幇FS鐨勮礋杞藉潎琛★級銆佽繛鎺ユ睜鐨勫姩鎬佹坊鍔?/span>/縐婚櫎絳夈傝繖浜涘皢鍦ㄤ笅鏂囦腑浠嬬粛銆?br>
鎰熻阿鍏蟲敞銆?br>