锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
聽聽聽榪愯鐜錛?br />聽聽聽聽聽聽JDK1.4錛孍clipse3.1錛孧yeclipse4.0錛孴omcat5.5
聽聽聽鐜拌薄錛?br />聽聽聽聽聽聽鍦╡clipse涓搴旂敤榪涜璋冩暣鍚庤繘琛岄噸甯冪講錛屾彁紺鴻甯冪講鎴愬姛錛岄噸鍚疶omcat鍚庢病鏈変換鎰忓彉鍖栥?br />
聽聽聽鍘熷洜錛?br />聽聽聽聽聽聽鐢變簬鎴戦噸鍋氫簡緋葷粺錛屼互鍓?web 搴旂敤鎵寮曠敤鐨勫寘璺緞鍙戠敓浜嗗彉鍖?璇ュ寘騫舵病鏈夊湪搴旂敤涓洿鎺ュ紩鐢?錛屼絾鏄敱浜庡湪 tomcat/commons/lib 涓嬪凡緇忔墜宸ユ坊鍔犱簡鍖咃紝鍥犳榪愯鏃舵甯革紝浣嗘槸鍦?eclipse 欏圭洰涓婂彲瑙佸埌閿欒鎻愮ず(娌℃敞鎰忓晩)錛岀粨鏋滈犳垚甯冪講鐨勫け璐?鎻愮ず涓婂彲鏄甯冪講鎴愬姛鐨?銆?br />
聽聽聽鍚庤瘽錛?br />聽聽聽聽聽聽鍚庢潵鎯充簡涓嬶紝鍘熷洜鏈夊彲鑳芥槸鐢變簬欏圭洰瀛樺湪鐫閿欒錛屽洜姝?eclipse 騫舵病鏈夊鏂扮殑 java 榪涜閲嶆柊緙栬瘧錛屽洜姝や笉璁烘庝箞鍘誨竷緗插疄闄呬笂閮芥槸鐢ㄥ嚭鐜伴敊璇箣鍓嶇殑鏈鍚庝竴嬈$紪璇戝嚭鏉ョ殑 class 鏂囦歡鍘昏繘琛屽竷緗詫紝鎵浠?java 鏂囦歡涓殑鏇存敼騫朵笉浼氫駭鐢熶換浣曟晥鏋溿?br />
]]>
import
聽java.io.
*
;
public
聽
class
聽Test聽
{
聽聽聽聽
/**聽*/
/**
聽聽聽聽聽*聽緇熻瀛椾覆涓腑鏂囧瓧絎︽暟閲?br />
聽聽聽聽聽*聽
@param
聽str:GB緙栫爜瀛楃涓?br />
聽聽聽聽聽
*/
聽聽聽聽
public
聽
static
聽
int
聽statGBCharCount1(String聽str)聽
{
聽聽聽聽聽聽聽聽
int
聽GBCount聽
=
聽
-
1
;
聽聽聽聽聽聽聽聽String聽otherStr聽
=
聽
null
;
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
try
{
聽聽聽聽聽聽聽聽聽聽聽聽otherStr聽
=
聽
new
聽String(str.getBytes(),
"
ISO8859_1
"
);
聽聽聽聽聽聽聽聽聽聽聽聽GBCount聽
=
聽otherStr.length()聽
-
聽str.length();
聽聽聽聽聽聽聽聽}
catch
(UnsupportedEncodingException聽ex)
{
聽聽聽聽聽聽聽聽聽聽聽聽
throw
聽
new
聽RuntimeException(
"
UnsupportedEncodingException
"
);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
return
聽GBCount;
聽聽聽聽}
聽聽聽聽
/**聽*/
/**
聽聽聽聽聽*聽緇熻瀛椾覆涓腑鏂囧瓧絎︽暟閲?br />
聽聽聽聽聽
*/
聽聽聽聽
public
聽
static
聽
int
聽statGBCharCount2(String聽str)聽
{
聽聽聽聽聽聽聽聽
int
聽GBCount聽
=
聽
-
1
;
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽GBCount聽
=
聽str.replaceAll(
"
[\u0000-\u0127]
"
,
""
).length();
聽聽聽聽聽聽聽聽System.out.println(
"
asc瀛楃:
"
聽
+
聽str.replaceAll(
"
[\u0000-\u0127]
"
,
""
));
聽聽聽聽聽聽聽聽System.out.println(
"
闈瀉sc瀛楃:
"
聽
+
聽str.replaceAll(
"
[^\u0000-\u0127]
"
,
""
));
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
return
聽GBCount;
聽聽聽聽}
聽聽聽聽
聽聽聽聽
public
聽
static
聽
void
聽main(String[]聽args)聽
{
聽聽聽聽聽聽聽聽String聽str聽
=
聽
"
This聽is聽test聽string聽榪欐槸涓涓祴璇曞瓧絎︿覆
"
;
聽聽聽聽聽聽聽聽System.out.println(
"
涓枃瀛楃鏁?
"
+
聽Test.statGBCharCount1(str));
聽聽聽聽聽聽聽聽System.out.println(
"
涓枃瀛楃鏁?
"
+
聽Test.statGBCharCount2(str));
聽聽聽聽}
}
鍙互鐪嬪埌錛屾柟娉?涓嬌鐢ㄧ殑鍔炴硶錛屽彲鑳藉眬闄愭ф洿澶э紝涓嶈繃涔熸槸涓縐嶆濊礬銆?br />鑷繁鎯崇殑鏄2縐嶆柟娉曪紝鐢ㄦ鍒欒〃杈懼紡鐩存帴榪囨護錛屼篃鎸哄揩鎹楓?/font>
]]>
聽聽聽聽聽聽聽 浠ュ墠涓婂煿璁椂鐨勮璁★紝鏄釜浣滀笟錛屼笉榪囨垜瀹炵幇寰楁瘮杈冮夯鐑︿竴鐐癸紝鐢ㄤ笂浜嗕竴浜汳VC鐨勪笢涓溿備笉鏂湪QQ緹や笂瑙佸埌鏈変漢闇瑕佺被浼肩殑涓滆タ錛堟槸涓嶆槸鍙鏄瘯涓氳璁¢兘鏄竴鏍風殑棰樼洰錛?img height="19" src="http://www.tkk7.com/Emoticons/thumbs_down.gif" width="19" border="0" />錛夛紝鎵浠ユ斁涓婃潵錛屼互鍚庤嚜宸變篃鍙互鐢ㄧ敤銆?/font>
綆浠嬪涓?
寮鍙戠幆澧?Win2k+JDK1.4.2
寮鍙戝伐鍏?Eclipse3.0
鏁版嵁鐜:
聽聽聽聽聽聽聽 SqlServer2000
寮鍙戣?
聽聽聽聽聽聽聽 涓漢
鍔熻兘:
聽聽聽聽聽聽聽 鑳藉瀹炵幇鏍?琛ㄧ殑婕旂ず錛屽鐢熺殑鍒嗙粍/鍒嗙彮錛屽鐝強緇勮繕鏈夊鐢熻繘琛屽/鍒?鏀?鏌ユ搷浣滐紝
鍦ㄦ坊鍔犲強淇敼鏃訛紝榪涜搴忓彿浠ュ強鍚嶇О鐨勬鏌ワ紝
瀛︾敓鍙互瀹炵幇鍙樻洿瀛﹀彿/鍚嶇О/鐝駭/緇勭瓑鍚勯」鎿嶄綔錛?/font>
鍙互鍦ㄧ粍嫻忚鐨勮〃鏍忎笂鍙抽敭鍗曞嚮錛屽皢閫夊畾鐨勫鐢熶粠緇勪腑鍒犻櫎
浣跨敤娉ㄦ剰錛?/strong>
聽聽聽聽聽聽聽 宸茬粡鎵撳ソJar鍖咃紝鍦―OS鎻愮ず絎︿笅榪愯"java -jar students.jar"鍗沖彲銆傚綋鐒跺墠鎻愭槸錛?br />聽聽聽聽聽聽聽 1.浣犲畨瑁呮湁SqlServer2000錛?br />聽聽聽聽聽聽聽 2.浣犲鍏ユ垜鎻愪緵鐨剆tudent.sql錛屾柊寤轟簡涓涓暟鎹簱
聽聽聽聽聽聽聽 3.浣犳湁SqlServer2000鐨勯┍鍔紙閭?涓狫ar鍖咃紝娌℃湁鐨勮嚜宸卞幓涓嬶級錛屽茍鍦ㄦ煡鎵捐礬寰勪箣涓?br />聽聽聽聽聽聽聽 4.浣犵殑SqlServer榪炴帴鍙傛暟涓庢垜鐩稿悓錛屼綘鍙互瑙e紑鍖咃紝榪炴帴鍙傛暟鎴戞斁鍦╯tendendts.common.Init綾諱腑錛岃嚜宸卞幓鏀規敼灝卞ソ
緇撴瀯璇存槑:
聽聽聽聽聽聽聽 宸茬粡榪囧幓浜嗗緢澶氭椂闂達紝鏃犺瘽鍙錛屽彲浠ョ湅鐪嬭繍琛屾椂鐨勬晥鏋滃浘錛?br />
聽聽聽聽聽聽聽聽聽鏁堟灉鍥?/a>
聽聽聽聽聽聽聽 鍔熻兘涓嶆槸寰堝鐨勶紝澶熶氦灝辮錛屽懙鍛點傚彟澶栬繕鏈夊彸閿彍鍗曠瓑鍔熻兘銆?br />鎷滄墭錛?br />聽聽聽聽聽聽聽 鏈夋嬁榪欎釜鐩存帴浜よ璁$殑鏈嬪弸錛岃寰楁妸鎴戠殑鍚嶅瓧涔熷啓榪涘幓濂戒簡錛屽綋騫撮仐鎲劇殑鏄垜鍐欏緱榪欎箞濂藉嵈鍙垰鍙婃牸錛屼粖澶╂斁涓婃潵鎵嶆檽寰楁槸鎵撳寘鐨勬椂鍊欏皯鎵撲簡閭d釜.classpath鍜?project鏂囦歡浜嗭紝璺緞涔熶笉澶錛岃偗瀹氭槸鑰佸笀娌℃硶瀵煎叆鎴戣繖涓伐紼嬶紝鎵浠ユ墠閭f牱銆?br />涓嬭澆錛?br />聽聽聽聽聽聽 students.rar
綆浠嬪涓?
寮鍙戠幆澧?Win2k+JDK1.4.2
寮鍙戝伐鍏?Eclipse3.0
鏁版嵁鐜:
聽聽聽聽聽聽聽 access+杞繛鎺ユ睜,婕旂ず鏃跺鏄撴矙
寮鍙戣?
聽聽聽聽聽聽聽 涓漢,鍘熸湰鏄?涓漢鎯崇潃瀛︾偣涓滆タ,緇撴灉娌℃浘鎯抽偅涓や釜鍏勫紵瑙夊緱楹葷儲浜?涓涓啓浜嗕笉鍒?00琛岀殑SOCKED閫氫俊,涓涓啓浜哊灝忕殑鑱婂ぉ瀹?
鍔熻兘:
聽聽聽聽聽聽聽 鑳藉瀹炵幇鐢ㄦ埛娉ㄥ唽,鐧誨綍,鏌ユ壘(3縐嶆柟寮?璺熷綋騫寸殑QQ瀛︾殑),鑱婂ぉ浠ュ強濂藉弸鐨勪笂/涓嬬嚎鎻愮ず絳?..
浣跨敤娉ㄦ剰錛?/strong>
聽聽聽聽聽聽聽 涓瀹氳璁板緱閰嶆暟鎹簮錛孼IP鍖呬腑鏈夎鏄庣殑銆備笉鐒舵棤娉曞伐浣溿?br />緇撴瀯璇存槑:
聽聽聽聽聽聽聽 榪欎釜寰楄濂藉ソ璇翠竴涓嬶紝姣曠珶鏄績琛鍛曚綔鍟娿傜湅鐪婼ocket鐨勫伐浣滄柟寮忥紝灝辨槸鏈嶅姟绔敤serversocket鍦ㄦ寚瀹氱鍙d睛鍚紝瀹㈡埛绔悜姝ょ鍙h繛鎺ワ紝涓鏃︽垚鍔燂紝鍒檚erversocket浠庨樆濉炵姸鎬佷腑鎭㈠錛屼駭鐢熶竴涓猻ocket瀵硅薄涓庝箣瀵瑰簲銆傜粨鏋滀駭鐢熺殑灝辨槸Socket鐨勪竴瀵逛竴(鍦≦Q緹や笂鍚浜鴻Socket鍙互涓瀵瑰錛屼笉鏅撳緱鍜嬫暣)銆傚浘紺哄涓?
聽聽聽聽聽聽聽聽ICQ紺烘剰鍥?/a>
聽聽聽聽聽聽聽 鍏朵腑瀹㈡埛绔笌鏈嶅姟绔兘鏄竴鏍風殑Socket瀵硅薄錛屽彲浠ュ皝鎴愪竴涓被錛屾妸杈撳叆渚﹀惉涔熷皝榪涘幓(瀹冧笌鍏跺畠鐨勫璞″畬鍏ㄦ棤鍏?,杈撳嚭鐣欎笅涓涓帴鍙o紝榪欎釜綾繪垜鍙畠"Linker"錛岀劧鍚庝綔涓篒CQ,姣忎釜瀹漢褰撶劧鏄湁ID鍜屽浘鏍?鎬у埆絳変俊鎭殑錛屾垜鎶婂畠鏀懼叆"ClientInfo"綾伙紝榪欎釜綾誨疄闄呬笂灝辨槸涓涓狫avaBean錛岃繖鏍蜂笌鏁版嵁搴撴墦浜ら亾鏃跺氨姣旇緝濂界敤浜嗐傚湪榪欎袱涓被鐨勪笂涓灞傛垜鎻愪緵浜嗕竴涓?Client"鍐嶆灝佷簡涓涓嬶紝瀹冪殑鏈澶х敤閫旀槸鐢ㄤ簬涓庢秷鎭垎鍙戝櫒鎵撲氦閬擄紝璁╁畠鎸佹湁涓涓秷鎭垎鍙戝櫒鐨勫紩鐢紝榪欎釜綾誨茍淇濈暀浜哃inker鐨勮緭鍑烘帴鍙d究浜庢秷鎭鐞嗗櫒璋冪敤銆備負浜嗗疄鐜癓inker鏀跺埌娑堟伅鏃墮氱煡Client錛屾垜浣跨敤浜嗚瀵熻呮ā寮?璁㎜inker瀹炵幇Observable鎺ュ彛錛岃孋lient緇ф壙鑷砄bserver.榪欐牱閫氳鐨勭嚎璺柟闈㈠氨鎼炲畾浜嗐?br />聽聽聽聽聽聽聽 鍦–lient瀵硅薄鐨勭鐞嗕笂錛屼負浜嗕究浜庡垎緇?QQ涓嶄篃鎻愪緵濂藉弸涔嬬被鐨勪箞)銆傛垜鎻愪緵浜嗕竴涓狢lientGroup綾繪潵鏀綜lient錛屾彁渚涗袱涓疄渚?宸茬櫥褰?鏈櫥褰?鏉ュ垎寮鏀撅紝鎰熻涓婂ソ涓浜涖傜敱浜庢秷鎭鐞嗕笂緇忓父闇瑕佽皟鐢–lient瀵硅薄錛屾妸榪欎釜鍔熻兘鎷垮嚭鏉ヤ笓闂ㄥ皝鍦ㄤ竴涓被涓紝鎴戝彨瀹?ClientMangager"鏉ョ鐞嗛偅緹ゆ粦澶寸殑Client銆?br />聽聽聽聽聽聽聽 鐒跺悗鍒伴噸瑕佺殑娑堟伅澶勭悊涓婁簡錛屽仛浜嗕竴涓?MessageProcessor"鐨勬帴鍙o紝璁╂秷鎭垎鍙戝櫒"ServerMessageProcessor"鍜岄拡瀵瑰叿浣撴儏鍐電殑娑堟伅澶勭悊鍣ㄩ兘瀹炵幇榪欎釜鎺ュ彛錛岀敱浜嶪CQ鐨勯氳鏄疄鏃朵篃鏄瀵瑰鐨勶紝鍙兘閲囩敤闃熷垪+鍏堣繘鍏堝嚭鐨勬柟寮忥紝榪欐牱鎯蟲潵鍙互澶勭悊涓浜涚姸鍐典簡銆傚垎鍙戝櫒涓寔鏈変竴涓狧ashMap錛孠ey鏀句笂娑堟伅鍙鳳紝Value鏀句笂澶勭悊鍣ㄧ殑寮曠敤銆傜敱鎺у埗鍣ㄦ潵鍏沖績濡備綍鍘繪惌閰嶅ソ浜嗐傝繖鏍風殑鑰冭檻灝辨槸錛屽鏋滃悗鏈熸湁鍏磋叮澧炲姞ICQ鐨勫姛鑳斤紝濡備紶杈撴枃浠?鍥劇墖絳夛紝灝辨瘮杈冪畝鍗曚簡錛屽姞涓涓秷鎭彿錛屽姞涓涓秷鎭鐞嗗櫒錛屽湪鎺у埗鍣ㄤ腑鍚戞秷鎭垎鍙戝櫒娣誨姞涓涓敞鍐屽嵆鍙傛劅瑙変笂榪欐槸涓箞浜嬫ā寮忎箣綾葷殑錛屽懙鍛點?br />聽聽聽聽聽 鏈嶅姟绔繖杈硅繕鍓╀竴涓鍙d睛鍚拰鏁版嵁澶勭悊浜嗭紝绔彛渚﹀惉鐢ㄤ簡涓涓?PortListener"錛屾垜鎶婂畠鏀懼湪common鍖呬腑錛屽師鏉ユ墦綆楁槸瀹㈡埛绔偅杈逛互鍚庡疄鐜板鎴?瀹㈡埛浜や簰鐨勬椂鍊欎篃鑳藉鐢ㄤ笂銆傛暟鎹鐞嗕笂鐢ㄤ笂瀛︽牎閲岀殑渚嬪瓙錛屾湁渚嬪瓙濂藉晩鏀規敼灝辨垚鑷繁鐨勪簡
銆傛暟鎹瓨鍙栦笂涓哄浘鏂逛究閲囧彇鐨勬槸鐩存帴瀵硅薄瀛樺彇(C++瀛︿範鏃剁殑澶х鍟?錛屼笉綆″畠浜嗭紝鍙嶆鑳界敤錛屼笉榪囬仐鐣欎笅浜嗛殣鎮o紝涓鏃︽敼鍔ㄤ簡涓涓嬬被錛屽氨璇諱笉鍑烘潵浜嗐?br />聽聽聽聽聽 鏈嶅姟绔繖杈規渶鍚庡啀涓婁竴涓?Server"鍋氫負鎺у埗鍣紝璁╁畠鎸佹湁PortListener銆丼erverMessageProcessor銆丼erverClientManger錛岃繕鏄佸璺敤瑙傚療鑰呮ā寮忎笌PortListener鎸備笂鍕俱傛湇鍔$OK銆?br />聽聽聽聽聽 鍐嶅埌闈炲父闈炲父閲嶈鐨勬秷鎭笂錛屾秷鎭槸澶氱澶氭牱鐨勶紝姣忎竴涓秷鎭搴斾竴涓姛鑳斤紝鏉ヤ竴涓帴鍙eソ浜?Message"錛岃鎺ュ彛涓繕鏀句笂浜嗘秷鎭彿(final)榪欐牱緙栧啓鐨勬椂鍊欎篃灝辯畝鍗曠洿瑙傚緱澶氫簡銆?br />聽聽聽聽聽 鍒版錛屾椂闂村凡緇忚繃鍘籒涔咃紝寮濮嬪鎴風緙栫▼錛屽鎴風鏄鏉ヤ笂鍑犱釜紿椾綋鐨勶紝楹葷儲鍟娿傛牴鎹姛鑳藉垎鎴愬涓狫Panel/JFrame浜嗭紝濡傜櫥褰曠獥鍙o紝鏄劇ず鑱婂ぉ鐨勯潰鏉匡紝杈撳叆+鍙戦侀潰鏉匡紝濂藉弸鏄劇ず鐨勯潰鏉匡紝榪樻湁鏌ユ壘濂藉弸銆傘傘傛諱箣鑰愬績蹇病浜嗐傛渶鍚庤繕鏄牻鍦ㄤ簡閭d釜濂藉弸闈㈡澘涓婏紝閭d釜JList鏄釜鐥涳紝鎴戠敤涓婁簡ListCellRender娓叉煋鍣紝榪欎釜娓叉煋鍣ㄨ瀹炶瘽榪樻槸铔垚鍔熺殑錛屼絾鏄暣鍒癑List涓氨涓嶈醇錛屽湪鍗曠被鐨凪ain涓紨紺洪兘鏄ソ鐨勩備絾鏄湪鏈鍚庣殑鎴愭灉涓婂氨鏃剁伒鏃朵笉鐏碉紝緇忓父閮戒細鍑虹幇JList鐧芥澘涓鍧楃殑闂錛堝畬鍏ㄩ殢鏈哄晩
錛夈傚悗鏉ユ濊冧簡涓涓嬶紝鎬鐤戞槸鍦ㄦ瀯閫犲嚱鏁頒腑璋冪敤澶涓滆タ鐨勭紭鏁咃紝鎵浠ヤ笅杞界殑鏈嬪弸鏈鍚庡璇曞嚑嬈℃垜淇濊瘉鑳絆K錛屾垜鍜熾?br />聽聽聽聽聽 涓滆タ璇村緱铔浜嗭紝鑷蟲涓烘錛岀溂瑙佷負瀹炪?br />鎷滄墭錛?/strong>
聽聽聽聽聽聽聽 鏈夌爺絀剁殑鏈嬪弸鑳芥暣濂介偅涓狫List鏄劇ず鐨勯棶棰橈紝涓囨湜鍛婁箣銆傘傘傘?br />濡傚疄鍛婁箣錛?/strong>
聽聽聽聽聽聽 Server榪欒竟鏄厛鍐欑殑錛屾瘮杈冩湁鑰愬績錛孋lient閭h竟鏄厛鏉ュ啓鐨勶紝鑰愬績娌′簡錛岃璇勮鐨勬湅鍙嬪鐪嬬湅Server錛屽ソ澶氱暀涓潰瀛?br />涓嬭澆錛?/strong>
聽聽聽聽聽 MyICQ.zip