VB6實現局域網多站點互連完全手冊
隨著時代的發展,我們已經步入了信息化時代,網絡的普及和應用,使得越來越多的編程人員加入網絡軟件開發的行列。不過現在對于比較完整的介紹在局域網中多個站點互連的文章,筆者還未見到,這篇文章較完整的介紹了如何利用Visual Basic 6的Winsock控件實現局域網中多個站點在客戶機/服務器模式下的互連,并給出了幾種連接方案進行比較,對于Winsock編程過程中遇到的一些問題做了解答。
這里對Winsock控件的屬性、方法和事件的介紹限于篇幅就不介紹了,下面以最簡單的C/S模式下一臺服務器和一臺客戶機的連接來說明其整個連接過程。
用框圖表示如圖1所示。首先運行服務器端的程序,使TcpServer處于監聽狀態,然后運行客戶機端的程序,單擊【連接服務器】按鈕后,客戶機端調用Connect方法呼叫服務器(根據RemoteHostIP遠程計算機IP地址和RemotePort遠程計算機端口號兩個參數),然后客戶機便處于正在連接服務器狀態,等待服務器的響應。客戶機調用Connect方法觸發了服務器ConnectRequest事件,這時服務器端可以在此事件中判斷是否要接受客戶機的請求,如要就調用Accept方法,并置標志位說明已成功連接客戶機。服務器端調用Accept方法后又觸發了客戶機端Connect事件,說明服務器端接受客戶端的請求,雙方已經建立連接了,這時再置客戶機端的標志位,這就是一個完整的連接過程。當服務器或客戶機調用Close方法關閉連接時,都會觸發對方的Close事件,使其關閉連接。另外建立連接后發送數據的情況是客戶機通過調用SendData方法發送數據給服務器,會觸發服務器端的DataArrival事件,在這個事件中,服務器端可以調用GetData或PeekData方法把客戶機發來的數據保存起來。服務器給客戶機發信息同理。要注意一點的是,在服務器的Close事件中應該加上繼續監聽的代碼,這樣客戶機才可以繼續呼叫服務器。