用VB創(chuàng)建自己的通信程序

字號:

Winsock控件建立在TCP、UDP的協(xié)議基礎上,以完成計算機網(wǎng)絡間的通信。下面將詳細的介紹具體的程序創(chuàng)建過程,以便使大家更好的理解程序的源代碼。
    服務器端程序的運行過程是:
    (1)服務器端要設置好偵聽端口即LocalPort屬性,作為偵聽端口的值必須是一個整數(shù)(一定要是其它TCP/IP應用程序沒有用過的值,并且不能與系統(tǒng)缺省端口沖突)。
    (2)用Listen方法進入偵聽狀態(tài),等待客戶機的連接請求。
    (3)當客戶機發(fā)出連接請求時,使服務器產(chǎn)生一個ConnectionRequest事件,且該事件得到一個參數(shù)equestID。
    (4)服務器程序用Accept方法接受客戶機requestID請求。這樣,服務器程序便可以用SendData方法來發(fā)送數(shù)據(jù)了。但是,Accept方法必須用上一個步得到的requestID作為其參數(shù)。
    (5)當服務器程序接收到數(shù)據(jù)時,便會產(chǎn)生一個DataArrial事件,參數(shù)BytesTotal包含接收到的數(shù)據(jù)字節(jié)數(shù)。在該事件中,可以用GetData方法接收數(shù)據(jù)。
    (6)如果接收到Close事件,則用Close方法關(guān)閉TCP/IP連接。
     客戶機的程序的運行過程是:
    (1)在客戶程序中設置Remmotehost屬性,以便指定運行服務器程序的主機名,該字符串可以在服務器“ 控制面板 網(wǎng)絡 標識 計算機”中查到。
    (2)設置RemotePort屬性,以便指定服務器程序的偵聽端口(其設置方法與服務器端類似)。
    (3)使用Connect方法,向服務器提出連接請求。
    (4)當服務器程序接受到客戶機程序的請求后,客戶機程序產(chǎn)生Connect事件,就可以用SendData方法發(fā)送數(shù)據(jù)了。
    (5)當客戶機程序接收到數(shù)據(jù)時,便會產(chǎn)生DataArrival事件,參數(shù)BytesTotal包含接收到的數(shù)據(jù)字節(jié)數(shù)。類似的在該事件中也可以用GetData方法接收數(shù)據(jù)。
    (6)如果客戶機程序接收到Close,則用Close方法關(guān)閉連接。
    使用說明:
    本程序?qū)崿F(xiàn)了兩臺計算機之間的自由通信。先將編譯好的程序分別放入兩臺已聯(lián)網(wǎng)的計算機的 開始 啟動 中,這樣每次啟動時,程序?qū)詣舆\行,程序啟動時將以最小化的形式出現(xiàn)在任務欄中,當用戶使用時可以通過點擊任務欄上的該程序圖標來激活該程序,一方將程序激活后,在“請輸入所要連接的主機名:“右側(cè)的編輯框中輸入需要連接的計算機名,并敲“連接”鍵便可連接成功。此時在“接收窗口:”下的編輯框中將會出現(xiàn)“連接成功”的提示。然后就可以在“發(fā)送窗口:”下的編輯框中輸入要說的話了,輸入完畢后敲“發(fā)送”鍵后便可使另一方收到你的話了,如果另一方的程序尚未正常化,那么另一方程序?qū)l(fā)出提示音并使任務欄中程序的圖標閃爍,直到另一方將程序激活為正?;⑴c你對話為止。如果暫時停止對話可以點擊該程序的極小化按鈕將程序最小化,一旦需要再次通話可直接激活該程序發(fā)送過去,如果另一方的程序尚未正?;敲闯绦蛉詫l(fā)出提示音并使開使欄中程序的小圖標閃爍,直到另一方將程序正常化并與你對話為止。所以,無論什么時候想與對方通話只要對方開了機便可以實現(xiàn)。當需要斷開連接時請按“關(guān)閉”鍵,該程序能自動發(fā)送結(jié)束消息,使對方能夠知道你已斷開連接,以結(jié)束程序運行。