伺服端
伺服端畫面
伺服Winsock1(0)
伺服Winsock1(1)
伺服Winsock1(2)
程式碼
Option Explicit
Private Sub cmdSend_Click()
Dim i As Long
For i = 1 To 2
Winsock1(i).SendData txtSend.Text
Next
End Sub
Private Sub Form_Load()
Winsock1(0).LocalPort = 7777
Winsock1(0).Listen 'Winsock1(0)負責監聽 Clien1=Winsock1(1) Clien2=Winsock1(2)
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim i As Long
For i = 1 To 2
If Winsock1(i).State = sckClosed Then
Winsock1(i).Accept requestID
List1.AddItem "Local Port=" + Str(Winsock1(i).LocalPort) + " RemotePort = " + Str(Winsock1(i).RemotePort)
Exit For
End If
Next
cmdSend.Enabled = True
End Sub
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
Winsock1(Index).GetData strData, vbString
txtReceived.Text = strData
If Index = 1 Then
Winsock1(2).SendData txtReceived.Text '接收到來至Clien1的資料送到Clien2
Else
Winsock1(1).SendData txtReceived.Text '接收到來至Clien2的資料送到Clien1
End If
If strData = "close" Then
Winsock1(Index).Close
cmdSend.Enabled = False
Winsock1(0).Listen
End If
End Sub
Clien端
Clien畫面
ClienWinsock1(1)
ClienWinsock1(2)
程式碼
Private Sub cmdConnect_Click()
Winsock1.LocalPort = 0 '以便自動產生Local Port
Winsock1.Connect "192.168.15.46" '設定改成您 Server 電腦的IP 號碼
End Sub
Private Sub cmdExit_Click()
Winsock1.SendData "close"
DoEvents
Winsock1.Close
Winsock1.LocalPort = 0
End Sub
Private Sub cmdSend_Click()
Winsock1.SendData txtOutput.Text
DoEvents
End Sub
Private Sub Form_Load()
Winsock1.RemotePort = 7777 '設定與Server端做Listen的Port相同
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Winsock1.State <> sckClosed Then
cmdExit_Click
End If
End Sub
Private Sub Winsock1_Connect()
If Winsock1.State = sckConnected Then
lstInput.AddItem "Connected! LocalPort =" & Winsock1.LocalPort _
& " RemptePort = " & Winsock1.RemotePort
End If
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim mydata As String
Winsock1.GetData mydata, vbString
lstInput.AddItem mydata
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
lstInput.AddItem Description
End Sub