網(wǎng)絡(luò)課程設(shè)計實驗報告QQ聊天實現(xiàn)_第1頁
網(wǎng)絡(luò)課程設(shè)計實驗報告QQ聊天實現(xiàn)_第2頁
網(wǎng)絡(luò)課程設(shè)計實驗報告QQ聊天實現(xiàn)_第3頁
網(wǎng)絡(luò)課程設(shè)計實驗報告QQ聊天實現(xiàn)_第4頁
網(wǎng)絡(luò)課程設(shè)計實驗報告QQ聊天實現(xiàn)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁

2、蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁

3、芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂

4、芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀

5、荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀

6、莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁

7、莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿

8、蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀

9、葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀

10、蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈

11、薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿

12、薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿

13、蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇

14、芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋

15、芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈

16、莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆

17、蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇

18、莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅

19、蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆

20、蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆

21、薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄

22、薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅

23、薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅

24、芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃

25、節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄

26、芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄

27、莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞螆肁膆蒈蕿羇膅薀螄袃膄芀薇衿膃蒂袂螅膂薄蚅肄膁芄袁羀膀莆蚃袆膀葿衿螂艿薁螞肀羋芀蒅羆芇莃蝕羂芆薅蒃袈芅芅螈螄芄莇薁肅芄葿螇罿芃薂蕿裊莂芁螅螁莁莄薈肀莀蒆螃肆荿蚈薆羂莈莈袁袈羅蒀蚄螃羄薃袀肂羃節(jié)蚃羈肂蒞袈襖肂蕆蟻螀肁蕿蒄腿肀荿蝿肅聿蒁薂羈肈薃螇袇肇芃薀螃肆蒞 計算機網(wǎng)絡(luò)課程設(shè)計報告 設(shè)計選題      網(wǎng)絡(luò)聊天室姓    名      

28、;    馬繼鳴 學(xué)    號          0909090630 完成時間         2012-1-12一、需求分析聊天工具大多數(shù)由客戶端程序和服務(wù)器程序外加服務(wù)器端,本程序采用客戶機/服務(wù)器架構(gòu)模式。通過java提供的socket類來連接客戶機和服務(wù)器并使客戶機和服務(wù)器之間相互通信,由于聊天是多點對多點的而java提供的多線程功能。用多線程可完

29、成多點對多點的聊天。主要有兩個應(yīng)用程序,分別為服務(wù)器程序和客戶端程序。服務(wù)器應(yīng)用程序主要用于消息轉(zhuǎn)發(fā),以及向所有用戶發(fā)送系統(tǒng)消息等;客戶端應(yīng)用程序主要用于客戶聊天記錄的顯示和信息輸入。采用client/server(c/s)體系結(jié)構(gòu),即客戶機/服務(wù)器體系結(jié)構(gòu)。聊天服務(wù)器專門用于監(jiān)控用戶狀態(tài)和轉(zhuǎn)發(fā)消息,客戶端負責(zé)接收消息的用戶序列和消息文本發(fā)送到服務(wù)器。該聊天系統(tǒng)實現(xiàn)群聊,用戶登陸,退出聊天系統(tǒng)等功能。二. 設(shè)計1設(shè)計思想: 課程設(shè)計中利用java實現(xiàn)基于c/s模式的聊天程序。聊天室共分為服務(wù)器端和客戶端兩部分,服務(wù)器端程序主要負責(zé)偵聽客戶發(fā)來的消息,客戶端登錄到服務(wù)器端才可以實現(xiàn)正常的聊天功能

30、。2功能設(shè)計 (1)服務(wù)器端的主要功能如下。 在特定端口上進行偵聽,等待客戶端連接。用戶可以配置服務(wù)端的偵聽端口,默認端口為10000.當(dāng)停止服務(wù)時,斷開所有用戶連接。 (2)客戶端的主要功能如下。 連接到已經(jīng)開啟聊天服務(wù)的服務(wù)端。 當(dāng)服務(wù)器端開啟的話,用戶可以隨時登錄與注銷。 用戶可以向所有人發(fā)送消息。3詳細設(shè)計聊天室服務(wù)器端設(shè)計聊天室服務(wù)器中主要的功能文件的功能如下:mybutlis.java主要用于添加事件偵聽和動作處理,具體是服務(wù)器按鈕中的“終止”“發(fā)送”的處理。public class mybutlis implements actionlistener private myserv

31、e server; private jtextfield filed1; public void actionperformed(actionevent e) mychatset.java服務(wù)器的線程隊列,運行的方法,新增一個用戶,則增加一個線程,并可以返回應(yīng)答消息,給其余用戶發(fā)送上下線信息,發(fā)送聊天信息(群聊私聊雖然已寫,但是不知為何沒有實現(xiàn)),發(fā)送用戶列表。關(guān)鍵在于除了線程之外,還定義了傳輸數(shù)據(jù)時的協(xié)議內(nèi)容,如何分辨不同的信息,如聊天信息,登陸信息,上下線信息,并把信息完整準確的傳遞。 public static arraylist<myserthread> servers=n

32、ew arraylist<myserthread>();/線程隊列public static void addthread(myserthread th) /增加一個服務(wù)器線程對象public static void sendremess(string type,string state,string s,myserthread myth)/返回應(yīng)答信息 public static void sendosmess(string type,string user)/其他用戶上下線信息public static void sendchatmess(string type,string

33、sender,string reciver,string mess)/聊天信息 public static void sendlist/用戶列表 mychecktool.java保存用戶的登陸信息,在其中建立一個碼表,并且可以判斷登陸信息是否合法。/建立碼表,用以保存用戶信息private static map<string, myuserinfo> maps=new hashmap<string, myuserinfo>(); public static boolean checkuser(myuserinfo user)/ 驗證用戶名myframe.java建立服務(wù)

34、器的主界面,關(guān)聯(lián)偵聽器。并啟動線程。myframe my=new myframe();my.showui();/ 顯示ui界面public void showui()server.setup();myserthread.java服務(wù)器線程類,定義輸入輸出流,發(fā)送讀取信息,獲取信息中相應(yīng)標簽的信息,用以判斷用戶名,密碼,并可以中斷連接。this.socket=socket;output=socket.getoutputstream();input=socket.getinputstream();public void sendmess(string s)/發(fā)送信息public string re

35、admess() /讀取信息public boolean readfirst()/將第一條信息讀出來public string getvalue(string type ,string mess) public void pocess()/用以判斷用戶名、密碼public void run()/線程開始 public myuserinfo getuser()/獲得該線程中的用戶信息myserve.java建立服務(wù)器,并啟動該線程。server=new serversocket(inport);socket sc=server.accept();/獲得socket對象myserthread th

36、=new myserthread(sc);th.start();/啟動線程客戶端中主要的功能文件概述如下:mybutlis.java主要用于添加事件偵聽和動作處理,具體是在客戶端中的登陸注冊發(fā)送等的處理。public mybutlis(mysocketchat socket,jtextarea area1,jtextarea area2,myloginui loginui,jcombobox box)public void actionperformed(actionevent e) /設(shè)置動作監(jiān)聽器 mychatframe.java客戶端的圖形界面。關(guān)聯(lián)偵聽器。并啟動線程。socket.se

37、tarea(area1);socket.start()myloginui.java 登陸界面mysocketchat.java構(gòu)建連接,截取字符串,發(fā)送登陸,注冊,聊天信息,讀取信息并判斷設(shè)置啟動線程方法。 public mysocketchat(jtextfield field1,jtextfield field2,jtextarea area)/重寫構(gòu)造函數(shù)public string getvalue(string type ,string mess) /截取字符串public void sendmess(string type)/ 發(fā)送登陸或者注冊信息public void sendch

38、at(string getter,string chat)/ 發(fā)送聊天消息public string readmess ()/讀入的信息public void checkmess(string mess) /判斷是什么消息public void run()/設(shè)置啟動方法三. 調(diào)試及測試1、調(diào)試過程中遇到的主要問題及解決方法 在對于群聊和私聊的處理中,只實現(xiàn)了群聊,私聊雖有寫,但是還沒有實現(xiàn),由于時間倉促,只能在寒假的其余時間努力完成。還有就是如何在服務(wù)器與客戶端的信息交互過程中,讓他們能分辨是哪種信息并準確的讀出來。如果不能準確的分析,則數(shù)據(jù)的交換只能完成一種粗略的互換,而不能提取聊天內(nèi)容等用

39、戶希望得到的信息。為此,我專門看了很多相關(guān)的資料,在很多方法里面選取了一種自己容易理解的方法,我就定義了幾種方式,分別辨認登陸注冊聊天列表等信息:"<msg><type>"+type+"</type>"+"<name>"+user+"</name>"+"<pwd>"+pwd+"</pwd></msg>"/第一個與最后一個msg是標示一整句話的標示符 type標示數(shù)據(jù)類型,兩個<

40、;type>中間的type即為需求數(shù)據(jù),兩個<user>之間的是用戶名稱,兩個<pwd>之間的pwd指的是密碼"<msg><type>chat</type>"+"<sender>"+user+"</sender>"+"<reciver>"+getter+"</reciver>"+"<content>"+chat+"</content&g

41、t;</msg>"/其中sender,reciever,content分別指發(fā)送者、接受者、內(nèi)容。一些語法問題,在隨著寫程序的過程中,也慢慢糾正。在服務(wù)器組建中,由于java對于網(wǎng)絡(luò)連接強有力的支持和豐富的代碼,讓我沒有遇到太難的問題。2、對設(shè)計和編碼的回顧討論和分析 在獲取系統(tǒng)時間這一塊上,還是做得比較好。calendar ca=calendar.getinstance();date da=new date();/ 注意是在java.util.date simpledateformat format=new simpledateformat("hh:mm:ss

42、");/設(shè)置時間格式da=ca.gettime();time=format.format(da); 處理保存的注冊信息時,可能做得不是很好,將hashmap寫入文件,這樣不能長期保存注冊信息,只能在服務(wù)器不關(guān)閉的狀態(tài)下,保存注冊信息。這個也會繼續(xù)改進3、程序運行的時空效率分析本程序應(yīng)用了線程對端口進行偵聽。線程一直后臺開啟,長期占用系統(tǒng)資源,但又能及時的實現(xiàn)端口監(jiān)聽和消息的收發(fā)。4、測試數(shù)據(jù)集服務(wù)器端程序主界面:可以記錄用戶名,賬號,ip地址,并可以發(fā)送系統(tǒng)消息客戶登陸注冊界面注冊成功提示框客戶端運行界面用戶端測試界面中間的(全部)按鈕, 點擊后可以顯示當(dāng)前在線的好友列表,并選擇聊天

43、對象四、經(jīng)驗和體會。這是我第一次做java項目,只是這個學(xué)期選修了面向程序設(shè)計,每周一節(jié)課,很淺顯的學(xué)習(xí)了java語言,在綜合性如此強的項目設(shè)計中,感覺力不從心。剛開始的一天里遇到了各種困難,不管是從原理上還是細節(jié)語法上,都感覺很難,索性前兩天沒有著手做, 只是在看別人的項目制作過程去學(xué)習(xí)思路,或者是在看java中的io stream,swing,awt,net的基礎(chǔ)原理和內(nèi)容,然后的才慢慢一步一步的開始做,因為慢,所以堅持寫,一共五天的時間,有兩天沒有睡覺。還好有些設(shè)計基礎(chǔ),在最后終于可以完成一些基本的目標。通過這次程序設(shè)計,進一步鞏固、加深了我們所學(xué)專業(yè)課程的基本理論知識,理論聯(lián)系實際,進

44、一步培養(yǎng)了綜合分析問題,解決問題的能力,進一步加強了java的實際應(yīng)用能力。在網(wǎng)絡(luò)知識中,也許這個知識點是可以銘記終身的。在如此痛苦又快樂的第一次的后面,我想,要我繼續(xù)寫別的程序的話, 我可以更有信息一些,一些流程已經(jīng)了然于胸。不管怎么樣,只有自己動手做了,才能是自己牢牢掌握的知識。所以我也會堅持去做些動手的內(nèi)容,去鍛煉自己。關(guān)鍵段落的代碼:服務(wù)器端myserve.javapackage com.javake.server;import java.io.ioexception;import .serversocket;import .socket;public class myserve pr

45、ivate int inport; private serversocket server; /重寫構(gòu)造函數(shù) public myserve(int inport) this.inport=inport; /建立服務(wù)器public void setup() try server=new serversocket(inport); while(true) /獲得socket對象 socket sc=server.accept(); myserthread th=new myserthread(sc); /啟動線程 th.start(); catch (ioexception e) / todo a

46、uto-generated catch blocke.printstacktrace(); public serversocket getserver() return server;myserthread.javapackage com.javake.server;import java.io.*;import .socket;public class myserthread extends thread private socket socket; private myuserinfo usein; /用戶對象 private inputstream input; private outp

47、utstream output; public myserthread(socket socket) /建立構(gòu)造函數(shù) this.socket=socket; /傳入管道 try output=socket.getoutputstream(); input=socket.getinputstream(); catch (ioexception e) / todo auto-generated catch block e.printstacktrace(); public void sendmess(string s) byte b=s.getbytes(); try output.write(b

48、);output.flush(); catch (ioexception e) / todo auto-generated catch blocke.printstacktrace(); public string readmess() stringbuffer buff=new stringbuffer(); string s="" boolean end=false; int i=0; try /循環(huán) while(!end) i = input.read(); char c=(char)i; buff.append(c); s=buff.tostring().trim(

49、); if(s.endswith("</msg>") s=new string(s.getbytes("iso-8859-1"),"gbk").trim(); break; catch (ioexception e) / todo auto-generated catch blocke.printstacktrace(); return s; /將第一條信息獨立出來 public boolean readfirst() string mess=readmess(); string flag=getvalue("t

50、ype", mess); /截取標記 if(flag.equals("reg") /判斷是否為注冊信息 string name=getvalue("name", mess); /獲得注冊的用戶 string pwd=getvalue("pwd", mess); myuserinfo user=new myuserinfo(); user.setname(name); user.setpassword(pwd); if( mychecktool.setuser(user) /驗證注冊是否成功 this.usein=user;

51、mychatset.sendremess("regresp", "1", "歡迎來到進入聊天室", this); return true; else mychatset.sendremess("regresp", "0","用戶已存在,注冊失敗" , this); return false; if(flag.equals("login") /判斷是否為登陸用戶 string name=getvalue("name", mess); /獲

52、得注冊的用戶 string pwd=getvalue("pwd", mess); string ip=getvalue("ip", mess); myuserinfo user=new myuserinfo(); user.setname(name); user.setpassword(pwd); user.setipaddress(ip); if( mychecktool.checkuser(user) /驗證登陸是否成功 this.usein=user; mychatset.sendremess("loginresp", &quo

53、t;1", "歡迎來到進入聊天室", this); mychatset.sendosmess("online", this.usein.getname();/發(fā)送用戶上線消息mychatset.addthread(this); /將線程加入隊列mychatset.sendlist();/發(fā)送用戶隊列 return true; else mychatset.sendremess("loginresp", "0","用戶名或賬號錯誤" , this); return false; /否則返

54、回登陸失敗 public string getvalue(string type ,string mess) int i=mess.indexof("<"+type+">")+type.length()+2; int j=mess.indexof("</"+type+">"); string s= mess.substring(i,j); /獲得截取的信息 return s; public void pocess()/用以判斷用戶名、密碼 if(readfirst() /登陸或注冊成功 st

55、ring str=readmess();string tp=getvalue("type", str);while(tp!="offline") if(tp.equals("chat")/獲得類型標簽 string sender=getvalue("sender", str); /獲得內(nèi)容string getter=getvalue("reciver", str); string content=getvalue("content", str); mychatset.send

56、chatmess("chat", sender, getter, content); /發(fā)送消息 else if(tp.equals("offline") /判斷是否為下線消息 string user=getvalue("user", str); mychatset.sendosmess("offline", user); else if(tp.equals("login") /注冊后可能發(fā)來登陸消息 string name=getvalue("name", str); /獲

57、得注冊的用戶 string pwd=getvalue("pwd", str); string ip=getvalue("ip", str); myuserinfo user=new myuserinfo(); user.setname(name); user.setpassword(pwd); user.setipaddress(ip); if( mychecktool.checkuser(user) /驗證登陸是否成功 this.usein=user; mychatset.sendremess("loginresp", "1", "歡迎來到進入聊天室", this); mychatset.addthread(this); system.out.println("二次注冊或登錄成功"); mychatset.sendlist(); mychatset.sendosmess("online", this.usein.getname();/發(fā)送用戶上線消息 else /將線程加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論