c#編寫(xiě)聊天程序_第1頁(yè)
已閱讀1頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C#編寫(xiě)簡(jiǎn)單的聊天程序編寫(xiě)簡(jiǎn)單的聊天程序引言引言這是一篇基于Socket進(jìn)行網(wǎng)絡(luò)編程的入門(mén)文章,我對(duì)于網(wǎng)絡(luò)編程的學(xué)習(xí)并不夠深入,這篇文章是對(duì)于自己知識(shí)的一個(gè)鞏固,同時(shí)希望能為初學(xué)的朋友提供一點(diǎn)參考。文章大體分為四個(gè)部分:程序的分析與設(shè)計(jì)、C#網(wǎng)絡(luò)編程基礎(chǔ)(篇外篇)、聊天程序的實(shí)現(xiàn)模式、程序?qū)崿F(xiàn)。程序的分析與設(shè)計(jì)程序的分析與設(shè)計(jì)1.1.明確程序功能明確程序功能如果大家現(xiàn)在已經(jīng)參加了工作,你的經(jīng)理或者老板告訴你,“小王,我需要你開(kāi)發(fā)一個(gè)聊天

2、程序”。那么接下來(lái)該怎么做呢?你是不是在腦子里有個(gè)雛形,然后就直接打開(kāi)VS2005開(kāi)始設(shè)計(jì)窗體,編寫(xiě)代碼了呢?在開(kāi)始之前,我們首先需要進(jìn)行軟件的分析與設(shè)計(jì)。就拿本例來(lái)說(shuō),如果只有這么一句話“一個(gè)聊天程序”,恐怕現(xiàn)在大家對(duì)這個(gè)“聊天程序”的概念就很模糊,它可以是像QQ那樣的非常復(fù)雜的一個(gè)程序,也可以是很簡(jiǎn)單的聊天程序;它可能只有在對(duì)方在線的時(shí)候才可以進(jìn)行聊天,也可能進(jìn)行留言;它可能每次將消息只能發(fā)往一個(gè)人,也可能允許發(fā)往多個(gè)人。它還可能有

3、一些高級(jí)功能,比如向?qū)Ψ絺魉臀募?。所以我們首先需要進(jìn)行分析,而不是一上手就開(kāi)始做,而分析的第一步,就是搞清楚程序的功能是什么,它能夠做些什么。在這一步,我們的任務(wù)是了解程序需要做什么,而不是我們的任務(wù)是了解程序需要做什么,而不是如何去做。如何去做。了解程序需要做什么,我們可以從兩方面入手,接下來(lái)我們分別討論。1.11.1請(qǐng)求客戶(hù)提供更詳細(xì)信息請(qǐng)求客戶(hù)提供更詳細(xì)信息我們可以做的第一件事就是請(qǐng)求客戶(hù)提供更加詳細(xì)的信息。盡管你的經(jīng)理或老板是

4、你的上司,但在這個(gè)例子中,他就是你的客戶(hù)(當(dāng)然通常情況下,客戶(hù)是公司外部委托公司開(kāi)發(fā)軟件的人或單位)。當(dāng)遇到上面這種情況,我們只有少得可憐的一條信息“一個(gè)聊天程序”,首先可以做的,就是請(qǐng)求客戶(hù)提供更加確切的信息。比如,你問(wèn)經(jīng)理“對(duì)這個(gè)程序的功能能不能提供一些更具體的信息?”。他可能會(huì)像這樣回答:“哦,很簡(jiǎn)單,可以登錄聊天程序,登錄的時(shí)候能夠通知其他在線用戶(hù),然后與在線的用戶(hù)進(jìn)行對(duì)話,如果不想對(duì)話了,就注銷(xiāo)或者直接關(guān)閉,就這些吧?!庇辛松?/p>

5、面這段話,我們就又可以得出下面幾個(gè)需求:1.程序可以進(jìn)行登錄。通常一個(gè)用例對(duì)應(yīng)一個(gè)功能或者叫需求,它是程序的一個(gè)執(zhí)行路徑或者執(zhí)行流程。一個(gè)用例對(duì)應(yīng)一個(gè)功能或者叫需求,它是程序的一個(gè)執(zhí)行路徑或者執(zhí)行流程。編寫(xiě)用例的思路是:假設(shè)你已經(jīng)有了這樣一個(gè)聊天程序,那么你應(yīng)該如何使用它?我們的使用步驟,就是一個(gè)用例。用例的特點(diǎn)就每次只針對(duì)程序的一個(gè)功能編寫(xiě),最后根據(jù)用例編寫(xiě)代碼,最終完成程序的開(kāi)發(fā)。我們這里的需求只有簡(jiǎn)單的幾個(gè):登錄,發(fā)送消息,接收消

6、息,注銷(xiāo)或關(guān)閉,上面的分析是對(duì)這幾點(diǎn)功能的一個(gè)明確。接下來(lái)我們首先編寫(xiě)第一個(gè)用例:登錄。在開(kāi)始之前,我們先明確一個(gè)概念:客戶(hù)端,服務(wù)端。因?yàn)檫@個(gè)程序只是在兩個(gè)人(機(jī)器)之間聊天,那么我們大致可以繪出這樣一個(gè)圖來(lái):我們期望用戶(hù)A和用戶(hù)B進(jìn)行對(duì)話,那么我們就需要在它們之間建立起連接。盡管盡管“用戶(hù)用戶(hù)A”A”和“用戶(hù)用戶(hù)B”B”的地位是對(duì)等的,但按照約定俗稱(chēng)的說(shuō)法:我們將發(fā)起連接請(qǐng)求的的地位是對(duì)等的,但按照約定俗稱(chēng)的說(shuō)法:我們將發(fā)起連接請(qǐng)求

7、的一方稱(chēng)為客戶(hù)端(或叫本地),另一端稱(chēng)為服務(wù)端(或叫遠(yuǎn)程)一方稱(chēng)為客戶(hù)端(或叫本地),另一端稱(chēng)為服務(wù)端(或叫遠(yuǎn)程)。所以我們的登錄過(guò)程,我們的登錄過(guò)程,就是就是“用戶(hù)用戶(hù)A”A”連接到連接到“用戶(hù)用戶(hù)B”B”的過(guò)程,或者說(shuō)客戶(hù)端(本地)連接到服務(wù)端(遠(yuǎn)程)的的過(guò)程,或者說(shuō)客戶(hù)端(本地)連接到服務(wù)端(遠(yuǎn)程)的過(guò)程。過(guò)程。在分析這個(gè)程序的過(guò)程中,我們總是將其分為兩部分,一部分為發(fā)起連接、發(fā)送消息的一方(本地),一方為接受連接、接收消息的一方

8、(遠(yuǎn)程)。登錄和連接(本地)登錄和連接(本地)主路徑可選路徑1.打開(kāi)應(yīng)用程序,顯示登錄窗口2.輸入用戶(hù)名3.點(diǎn)擊“登錄”按鈕,登錄成功3.“登錄”失敗如果用戶(hù)名為空,重新進(jìn)入第2步。4.顯示主窗口,顯示登錄的用戶(hù)名稱(chēng)5.點(diǎn)擊“連接”,連接至遠(yuǎn)程6.連接成功6.1提示用戶(hù),連接已經(jīng)成功。6.連接失敗6.1提示用戶(hù),連接不成功5.在用戶(hù)界面變更控件狀態(tài)5.2連接為灰色,表示已經(jīng)連接5.3注銷(xiāo)為亮色,表示可以注銷(xiāo)5.4發(fā)送為亮色,表示可以發(fā)消

溫馨提示

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

評(píng)論

0/150

提交評(píng)論