visual basic winsock control and multiple client connections
Date: 1998/11/20
Message-ID: <01be1403$2deb3800$ac421bac_at_marcel.sisinfor.ts.es>
Dear All,
I am working with the winsock control in Visual Basic 5.0.
I have succesfully made a connection between a Server program which is listening for incoming request and one Client program which is trying to connect to a remote port number.
My questions now are:
- How can I let multiple client programs make connections to the same
server program. I want a maximum of 5 client connections to one server
program.
- How can I let Windows know that I have one server program which always
will listen to a specific port number ?
I have included the sample code which I have working sofar.
Thanks in advance,
Marcel van Velzen
marcel.van.velzen_at_cousin-it.com
server program: normal project, one form (form1) with one winsock control
(winsock1), one textbox (text1), one timer control (timer1)
Private Sub Form_Load()
Winsock1.Listen
End Sub
Private Sub Timer1_Timer()
PrintStatus
End Sub
Private Sub Winsock1_Close()
MsgBox "SERVER - Close"
Winsock1.Close
Winsock1.Listen
End Sub
Private Sub Winsock1_Connect()
MsgBox "SERVER - Connect"
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal lonRequestID As Long)
MsgBox "SERVER - connection request"
If Winsock1.State <> sckClosed Then
Winsock1.Close
End If
Winsock1.Accept lonRequestID
End Sub
Private Sub Winsock1_DataArrival(ByVal lonBytesTotal As Long)
Dim strInput As String
Winsock1.GetData strInput, vbString, lonBytesTotal
MsgBox "SERVER - Data = " & strInput
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)
MsgBox "SERVER - Error" & Description End Sub
Sub PrintStatus()
Dim lstrStatus(10) As String
lstrStatus(1) = "sckClose" lstrStatus(2) = "sckOpen" lstrStatus(3) = "sckListening" lstrStatus(4) = "sckConnectionPending" lstrStatus(5) = "sckResolvingHost" lstrStatus(6) = "sckHostResolved" lstrStatus(7) = "sckConnecting" lstrStatus(8) = "sckConnected" lstrStatus(9) = "sckClosing" lstrStatus(10) = "sckError" Select Case Winsock1.State Case sckClose intIndex = 1 Case sckOpen intIndex = 2 Case sckListening intIndex = 3 Case sckConnectionPending intIndex = 4 Case sckResolvingHost intIndex = 5 Case sckHostResolved intIndex = 6 Case sckConnecting intIndex = 7 Case sckConnected intIndex = 8 Case sckClosing intIndex = 9 Case sckError intIndex = 10
End Select
Text1.Text = Str(Winsock1.State) & "-" & lstrStatus(intIndex) End Sub
client program: normal project, one form (form1), one timer control
(timer1), one textbox (text1), three command buttons (connect=command1,send
data=command2, close=command3)
Private Sub Command1_Click()
If Winsock1.State <> sckClosed Then
Winsock1.Close
End If
Winsock1.LocalPort = 0
Winsock1.Connect
End Sub
Private Sub Command2_Click()
Winsock1.SendData "marcel"
End Sub
Private Sub Command3_Click()
Winsock1.Close
End Sub
Private Sub Form_Load()
End Sub
Private Sub Timer1_Timer()
PrintStatus
End Sub
Sub PrintStatus()
Dim lstrStatus(10) As String
lstrStatus(1) = "sckClose" lstrStatus(2) = "sckOpen" lstrStatus(3) = "sckListening" lstrStatus(4) = "sckConnectionPending" lstrStatus(5) = "sckResolvingHost" lstrStatus(6) = "sckHostResolved" lstrStatus(7) = "sckConnecting" lstrStatus(8) = "sckConnected" lstrStatus(9) = "sckClosing" lstrStatus(10) = "sckError" Select Case Winsock1.State Case sckClose intIndex = 1 Case sckOpen intIndex = 2 Case sckListening intIndex = 3 Case sckConnectionPending intIndex = 4 Case sckResolvingHost intIndex = 5 Case sckHostResolved intIndex = 6 Case sckConnecting intIndex = 7 Case sckConnected intIndex = 8 Case sckClosing intIndex = 9 Case sckError intIndex = 10
End Select
Text1.Text = Str(Winsock1.State) & "-" & lstrStatus(intIndex) 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)
MsgBox "CLIENT - " & Description
End Sub
Received on Fri Nov 20 1998 - 00:00:00 CET