【正文】
成員葉俊杰:負(fù)責(zé)界面美化,服務(wù)器端維護(hù),客戶端文件傳輸,及相應(yīng)測(cè)試和相關(guān)文檔編寫 評(píng)語(yǔ)及評(píng)分 評(píng)閱人簽名:?!叭f(wàn)事開(kāi)頭難”,一開(kāi)始感覺(jué)無(wú)從入手到現(xiàn)在提交完成品也算是一種體驗(yàn),此外,這次選修計(jì)算機(jī)網(wǎng)絡(luò),知識(shí)豐富了不少,實(shí)踐部分,就是此次課程設(shè)計(jì),這次課程設(shè)計(jì)也是上大學(xué)以來(lái)相對(duì)較難的課題,也因此讓我們懂得了軟件制作過(guò)程中團(tuán)隊(duì)合作和溝通交流的重要性(或許這也是老師不允許單獨(dú)完成的原因之一吧)。關(guān)于程序,只能說(shuō)匆匆剛學(xué)VB剛用做出來(lái)的作品的確存在許多不足的地方,首先界面上還不夠美觀,不過(guò)也算差強(qiáng)人意;功能上,客戶端登陸界面上忘記添加注冊(cè)功能(該功能已在服務(wù)器上實(shí)現(xiàn)),這點(diǎn)疏忽了,也沒(méi)完成額外要求,例如文件的斷點(diǎn)重傳和語(yǔ)音聊天等,在實(shí)際測(cè)試?yán)铮F(xiàn)在程序還存在一點(diǎn)小bug(如三方同時(shí)互相傳遞大文件),基本功能實(shí)現(xiàn)上,整體效果還算差強(qiáng)人意,如果時(shí)間允許的話,我們會(huì)在后續(xù)嘗試修正一些BUG。4討論與總結(jié)在接到課題后,一段時(shí)間內(nèi)沒(méi)有絲毫頭緒,2人去了一趟圖書館,找了一下午相應(yīng)的VB編程參考書(尤其涉及網(wǎng)絡(luò)編程),回來(lái)當(dāng)天便初步確定分工并于網(wǎng)上找到高手關(guān)于winsock通信的相關(guān)介紹,便開(kāi)始了我們的課程設(shè)計(jì),由于我們并未系統(tǒng)學(xué)習(xí)過(guò)VB,基本上是現(xiàn)學(xué)現(xiàn)用,即時(shí)時(shí)間看上去蠻長(zhǎng)的,編寫過(guò)程及相應(yīng)的調(diào)試搞到我們焦頭爛額,尤其是調(diào)試bug,現(xiàn)在真正體會(huì)到“測(cè)試才是一個(gè)程序里的最艱難時(shí)段”這句話的含義。===========================================================因?yàn)閣insock“數(shù)據(jù)到達(dá)”處理,他需要判斷到達(dá)的是“登陸和退出信息”還是“已登陸用戶間的群聊天記錄”,這里我們做了個(gè)簡(jiǎn)單的協(xié)議“InStr(sData, $$$)”,相關(guān)代碼如下:If InStr(sData, $$$) 0 Then For n = 1 To Num If tcpServer(n).State = 7 And n Index Then tcpServer(n).SendData sData DoEvents End If Next group_chat1 = InStr(sData, $$$) group_chat2 = InStr(group_chat1 + 1, sData, $$$) sData = Mid(sData, group_chat1 + 3, group_chat2 group_chat1 3) = Len() = + Chr(10) + CStr(Now()) + Chr(10) + sData + Chr(10) = Len()End If這里我們采用單選按鈕(添加和修改)來(lái)實(shí)現(xiàn)客戶端管理和維護(hù),選擇注冊(cè)或者刪除,點(diǎn)擊“確定后”將顯示相應(yīng)功能,相關(guān)代碼如下:Private Sub mand1_Click() Dim i, j, k As Integer If Len() = 0 Then k = MsgBox(賬戶不能為空!, 64, 提示) Exit Sub End If If = True Then For i = 1 To If (i).Text = Then k = MsgBox(此賬戶已經(jīng)存在,不能添加!, 64, 提示) Exit Sub End If Next i Set itmx = (1, , ) (1) = (2) = 0 ListView_Change1 = ListView_Change1 + 1 Call Data_Add(, ) Call Con_Close k = MsgBox(已經(jīng)添加成功!, 64, 提示) Else j = (j).SubItems(1) = (j).SubItems(2) = 0 (j).SubItems(3) = ListView_Change1 = ListView_Change1 + 1 Call Data_Mod(, ) Call Con_Close k = MsgBox(修改成功!, 64, 提示) = 0 End If = End Sub 然而在刪除層面上,服務(wù)器不能刪除全部人員信息(至少得保留管理員),基于這種機(jī)制,在“刪除”按鈕上,我們添加如下代碼:Private Sub mand2_Click() If = True Then If ().Text = 管理員 Then i = MsgBox(不能刪除“管理員”賬號(hào)!, 64, 提示) Exit Sub End If ListView_Change1 = ListView_Change1 + 1 Call Data_Del() Call Con_Close k = MsgBox(已經(jīng)刪除成功!, 64, 提示) = = = True = Else k = MsgBox(請(qǐng)選擇數(shù)據(jù)!, 64, 提示) End IfEnd Sub3實(shí)驗(yàn)結(jié)果在本次的實(shí)驗(yàn)中成功實(shí)現(xiàn)客戶端和服務(wù)器各種基于TCP通信的功能,客戶端(1)登陸功能(2)聊天功能(3)離線聊天功能(4)接受離線信息功能(5)聊天記錄功能(6)顯示用戶狀態(tài)功能 服務(wù)器(1)維護(hù)用戶功能(2)更新用戶狀態(tài)功能(3)離線功能(4)檢驗(yàn)用戶信息功能(5)顯示群聊記錄。密碼*** Call check_account_pwd(Trim(user(0).uName), Trim(user(0).uPWD), Index) 39。=========================================================== If InStr(sData, |) Then account_where1 = InStr(sData, ***) account_where2 = InStr(account_where1 + 1, sData, ***)