來源:http://www.fenbi360.net/content.aspx?id=1100&t=ct
:請到上面地址下載
這是一個簡單的聊天程式(VB6.0實現),它可以實現在區域網路中兩台主機間的線上聊天,程式很簡單,只有短短的幾十行,但“麻雀雖小,五髒俱全”,它已經有了聊天程式的大體架構。我們在它的基礎上稍加改進,就能做出不錯的聊天小軟體呢。
主打控制項WINSOCK解析:
作為這個CHAT程式的主打控制項WINSOCK,我們來看看它的一些常用屬性、事件和方法。利用WinSock控制項可以與遠端電腦建立串連,並通過使用者資料文報協議 (UDP)或者傳輸控制通訊協定 (TCP)進行資料交換。這兩種協議都可以用來建立客戶與伺服器應用程式。與 Timer 控制項類似,WinSock 控制項在運行時是不可見的。
它的主要用途有:
1、建立收集使用者資訊的用戶端應用程式,並將收集的資訊發送到某中央伺服器。
2、建立一個伺服器應用程式,作為多個使用者的資料的匯入點。
3、建立“聊天”應用程式。
WINSOCK的主要屬性有:
●PROTOCOL(控制協議)屬性,在這個例子中,我們將PROTOCOL屬性設定為sckUDPProtocol。這個協議一般用於簡單資料交換的情況,而如果我們要編寫INTERNET應用程式,多採用TCP協議。
●屬性RemoteHost是遠程主機的地址,LocalPort、RemotePort分別本地主機的連接埠和遠程主機連接埠,對客戶來說,該屬性指定發送資料的本地連接埠,而對於伺服器來說,這是用於偵聽的本地連接埠,我們在設定這兩個屬性時必須保證兩台主機的連接埠值符合下面規則,即主機1的LocalPort等於主機2的RemotePort值,同樣主機1的RemotePort等於主機2的LocalPort值,這樣才能保證兩機通訊的正常進行。
●LocalIP屬性用於返回本地機器的 IP 位址,格式是 IP 位址加點的字串 (xxx.xxx.xxx.xxx)。
在本例中我們用到了以下幾個WINSOCK的方法:
●在建立 UDP 應用程式時調用了 Bind 方法,這是必須的。Bind 方法的作用是為控制項“保留”一個本地連接埠。例如,如果將控制項綁定到1001 號連接埠,那麼其它應用程式將不能使用該連接埠進行“監聽”。該方法阻止其它應用程式使用同樣的連接埠。
●SendData 方法用於發送一條資料給另一台主機,使用這個方法的文法是: WinSock.SendData [要發送的資料]
●GetData 方法。當DataArrival事件出現時,代碼調用 GetData 方法擷取資料,並將資料存放區在字串變數中。使用文法是:WinSock.GetData [接收資料的變數]
●DataArrival事件:在本例中我們使用了DataArrival事件,DataArrival事件在當新資料到達時出現使用的文法為:object_DataArrival (bytesTotal As Long) DataArrival 事件的文法包含下面部分: object 對象運算式,其值是“應用於”列表中的對象。 bytesTotal Long型 ,可擷取的資料總數量。
需要說明的是:如果沒有擷取一個 GetData 調用中的全部資料,則事件不會出現。只有存在新資料時才啟用事件。可隨時用 BytesReceived屬性檢查可用的資料量。
這就是一個最簡單的CHAT程式,你可以在它的基礎上加以改進,做出更實用的CHAT小軟體。