Server端
IP : 192.168.15.46
Client端
IP : 192.168.15.47、192.168.15.48
Server端
截圖
winsock設定
程式碼
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 4
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(1).Close
cmdSend.Enabled = False
Winsock1(0).Listen
End If
End Sub
Client端
截圖
IP與port設定
程式碼
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
沒有留言:
張貼留言