現(xiàn)在大多數(shù)語言都支持客戶-服務(wù)器模式編程,其中VB給我們提供了很好的客戶-服務(wù)器編程方式。下面我們用VB來實現(xiàn)TCP/IP網(wǎng)絡(luò)編程。 TCP/IP協(xié)議是Internet最重要的協(xié)議。VB提供了WinSock控件,用于在TCP/IP的基礎(chǔ)上進行網(wǎng)絡(luò)通信。當兩個應(yīng)用程序使用Socket進行網(wǎng)絡(luò)通信時,其中一個必須創(chuàng)建Socket服務(wù)器偵聽,而另一個必須創(chuàng)建Socket客戶去連接服務(wù)器。這樣兩個程序就可以進行通信了。 1.創(chuàng)建服務(wù)器,首先創(chuàng)建一個服務(wù)端口號。并開始偵聽是否有客戶請求連接。 建立一窗體,并向其增加一個Winsock控件(可在工程菜單中的部件項來添加此控件) 添加兩文本框Text1,Text2,和一按鈕Command1 Private Sub Form_Load() SockServer.LocalPort = 2000 ′服務(wù)器端口號,最好大于1000 SockServer.Listen ′開始偵聽 End Sub Private Sub Form_Unload(Cancel As Integer) SockServer.Close End Sub Private Sub SockServer_Close() SockServer.Close End Sub Private Sub SockServer_ConnectionRequest(ByVal requestID As Long) SockServer.Close SockServer.Accept requestID ′表示客戶請求連接的ID號 End Sub ′當客戶向服務(wù)器發(fā)送數(shù)據(jù)到達后,產(chǎn)生DataArrival事件,在事件中接收數(shù)據(jù),GetData方法接收數(shù)據(jù)。 Private Sub SockServer_Data Arrival(ByVal bytesTotal As Long) Dim s As String SockServer.GetData s Text1.Text = s End Sub 當我需要向客戶發(fā)送數(shù)據(jù)時,只需調(diào)用SendData方法。 Private Sub Command1_Click() SockServer .SendData Text2.Text End Sub 2.創(chuàng)建客戶。要創(chuàng)建客戶連接服務(wù)器,首先設(shè)置服務(wù)器主機名,如IP地址、域名或計算機名,然后設(shè)置服務(wù)器端口,最后連接服務(wù)器。 建立一窗體,并向其增加一個Winsock控件(可在工程菜單中的部件項來添加此控件),取名為:SockC1。添加兩文本框Text1,Text2,和一按鈕Command1 Private Sub Form_Load() SockCl.RemoteHost =′127.0.0.1″ ′表示服務(wù)器主機名 SockCl.RemotePort = 2000 ′表示服務(wù)器端口名 SockCl.Connect ′連接到服務(wù)器 End Sub Private Sub Form_Unload(Cancel As Integer) SockCl.Close End Sub Private Sub SockCl_Close() SockCl.Close End Sub Private Sub SockCl_DataArrival(ByVal bytesTotal As Long) Dim s As String SockCl.GetData s ′接收數(shù)據(jù)到文本框中 Text1.Text = s End Sub Private Sub Command1_Click() SockCl.SendData Text2.Text ′向服務(wù)器發(fā)送數(shù)據(jù) End Sub 3.進行通信。把這兩個窗體分別編譯成兩個EXE文件,服務(wù)器Server.exe和客戶Client.exe程序,并把它們分別安裝在服務(wù)器端和客戶端,這樣就可以實現(xiàn)兩者通信了。 (河北 郝一霜)
|