服务器端:
Option Explicit
Private intmax As Long
Private Sub Form_Load()
intmax = 0
Winsock1(intmax).LocalPort = 1665
Winsock1(intmax).Listen
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
Dim i As Integer
Dim temp As Integer
temp = 0
For i = 1 To intmax
If Winsock1(i).State = 0 Then
temp = i
Exit For
End If
Next
If temp = 0 Then
intmax = intmax + 1
temp = intmax
Load Winsock1(temp) Winsock1(temp).LocalPort = 0 Winsock1(temp).Accept requestID
End If
End If
End Sub
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim mydata As String
Winsock1(Index).GetData mydata, vbString
List1.AddItem "From Socket" + Str(Index) + " " + mydata
Winsock1(Index).SendData "WinSock" + Str(Index) + "Reply"
If mydata = "Close" Then
Winsock1(Index).Close
End If
客户端:
Option Explicit
Private Sub Command1_Click()
On Error GoTo myError1
Winsock2.LocalPort = 0 '以便自动产生Local Port
Winsock2.Connect "192.168.1.19" '设定改成您 Server 电脑的IP 号码
myError1:
End Sub
Private Sub Command2_Click()
On Error GoTo myError2
Winsock2.SendData "Close" '通知Server端Close
DoEvents
Winsock2.Close
myError2:
End Sub
Private Sub Command3_Click()
If Winsock2.State <> sckConnected Then
MsgBox "请连接"
Else
Winsock2.SendData "请求校时"
End If
End Sub
Private Sub Form_Load()
Winsock2.RemotePort = 1665 '设定与Server端做Listen的Port相同
Command1.Caption = "连接"
Command2.Caption = "断开"
Command3.Caption = "发送请求"
List1.Clear
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Winsock2.State <> sckClosed Then
Winsock2.SendData "Close"
DoEvents
Winsock2.Close
Winsock2.LocalPort = 0
End If
End Sub
Private Sub Winsock2_Connect()
If Winsock2.State = sckConnected Then
List1.AddItem "Connected! LocalPort =" + Str(Winsock2.LocalPort) + " RemptePort = " + Str(Winsock2.RemotePort)
End If
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim mydata As String
Winsock2.GetData mydata, vbString
List1.AddItem mydata
End Sub
Private Sub Winsock2_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)
List1.AddItem Description
End Sub
第一次连接成功 能发送请求 关闭连接后再连接 没反应 不能发请求
Option Explicit
Private intmax As Long
Private Sub Form_Load()
intmax = 0
Winsock1(intmax).LocalPort = 1665
Winsock1(intmax).Listen
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
Dim i As Integer
Dim temp As Integer
temp = 0
For i = 1 To intmax
If Winsock1(i).State = 0 Then
temp = i
Exit For
End If
Next
If temp = 0 Then
intmax = intmax + 1
temp = intmax
Load Winsock1(temp) Winsock1(temp).LocalPort = 0 Winsock1(temp).Accept requestID
End If
End If
End Sub
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim mydata As String
Winsock1(Index).GetData mydata, vbString
List1.AddItem "From Socket" + Str(Index) + " " + mydata
Winsock1(Index).SendData "WinSock" + Str(Index) + "Reply"
If mydata = "Close" Then
Winsock1(Index).Close
End If
客户端:
Option Explicit
Private Sub Command1_Click()
On Error GoTo myError1
Winsock2.LocalPort = 0 '以便自动产生Local Port
Winsock2.Connect "192.168.1.19" '设定改成您 Server 电脑的IP 号码
myError1:
End Sub
Private Sub Command2_Click()
On Error GoTo myError2
Winsock2.SendData "Close" '通知Server端Close
DoEvents
Winsock2.Close
myError2:
End Sub
Private Sub Command3_Click()
If Winsock2.State <> sckConnected Then
MsgBox "请连接"
Else
Winsock2.SendData "请求校时"
End If
End Sub
Private Sub Form_Load()
Winsock2.RemotePort = 1665 '设定与Server端做Listen的Port相同
Command1.Caption = "连接"
Command2.Caption = "断开"
Command3.Caption = "发送请求"
List1.Clear
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Winsock2.State <> sckClosed Then
Winsock2.SendData "Close"
DoEvents
Winsock2.Close
Winsock2.LocalPort = 0
End If
End Sub
Private Sub Winsock2_Connect()
If Winsock2.State = sckConnected Then
List1.AddItem "Connected! LocalPort =" + Str(Winsock2.LocalPort) + " RemptePort = " + Str(Winsock2.RemotePort)
End If
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim mydata As String
Winsock2.GetData mydata, vbString
List1.AddItem mydata
End Sub
Private Sub Winsock2_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)
List1.AddItem Description
End Sub
第一次连接成功 能发送请求 关闭连接后再连接 没反应 不能发请求
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim mydata As String
Winsock1(Index).GetData mydata, vbString
List1.AddItem "From Socket" + Str(Index) + " " + mydata
Winsock1(Index).SendData "WinSock" + Str(Index) + "Reply"
If mydata = "Close" Then
Winsock1(Index).Close
End If
End Sub