用VB5 Winsock控件創(chuàng)建TCP/IP通訊程序 隨著Windows 95中文版和Windows NT Server 4.0中文版的流行, Microsoft公司推出了相應(yīng)平臺上的開發(fā)軟件: Visual Basic 5.0 中文企業(yè) 版。它為Windows環(huán)境下的網(wǎng)絡(luò)開發(fā)提供了強大的工具,Winsock控件就是其中之一。 Winsock控件建立在TCP、UDP協(xié)議的基礎(chǔ)上,完成與遠程計算機的通信。即使對TCP/IP不太熟悉的用戶,使用該控件也可以在十幾分鐘內(nèi)創(chuàng)建一個簡單的客戶機/服務(wù)器程序。下面我們對Winsock控件的事件、方法、屬性按其在程序中出現(xiàn)的順序分別作詳細(xì)的介紹,以便更好地理解程序源代碼。
站在用戶的角度思考問題,與客戶深入溝通,找到龍川網(wǎng)站設(shè)計與龍川網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋龍川地區(qū)。
用 vb.net socket通信
Dim th As Threading.Thread
2 Dim tcpl As System.Net.Sockets.TcpListener
3
4 Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
5 th = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf MyListen))
6 th.Start()
7 End Sub
8
9 Public Sub SendMessage()Sub SendMessage(ByVal IP As String, ByVal SendMsg As String)
10 Try
11 If IP "" Then
12 Dim tcpc As New System.Net.Sockets.TcpClient(IP, 5656)
13 Dim tcpStream As Net.Sockets.NetworkStream = tcpc.GetStream
14 Dim reqStream As New IO.StreamWriter(tcpStream)
15 reqStream.Write(SendMsg)
16 reqStream.Flush()
17 tcpStream.Close()
18 tcpc.Close()
19 End If
20 Catch ex As Exception
21 MsgBox(ex.Message.ToString)
22 End Try
23 End Sub
24 Private Sub MyListen()Sub MyListen()
25 Try
26 Dim ipAddress As System.Net.IPAddress = System.Net.Dns.Resolve(System.Net.Dns.GetHostName).AddressList(0)
27 tcpl = New System.Net.Sockets.TcpListener(ipAddress, 5656)
28 tcpl.Start()
29 While True
30 Dim s As System.Net.Sockets.Socket = tcpl.AcceptSocket()
31 Dim MyBuffer(1024) As Byte
32 Dim i As Integer
33 i = s.Receive(MyBuffer)
34 If i 0 Then
35 Dim lstrRec As String
36 Dim j As Integer
37 For j = 0 To i - 1
38 TextBox1.Text += Chr(MyBuffer(j)) ","
39 Next
40 End If
41 End While
42 Catch ex As Exception
43 MsgBox(ex.Message.ToString)
44 End Try
45 End Sub
46
47 Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
48 SendMessage("192.168.0.61", TextBox2.Text)
49 End Sub
端口不NAT,兩個子網(wǎng)中的兩端之間不可能通信。至少要有一方處在公網(wǎng)下或有路由端口映射,不必雙方都映射。
建議題主找本計算機網(wǎng)絡(luò)的書研讀一下子網(wǎng)劃分這塊兒。