Как заставить Winsock работать с несколькими
соединениями
Контрол Winsock позволяет создавать только одно
соединение между двумя компьютерами. Однако,
можно создать несколько соединений (несколько
компьютеров к одному) путём создания нескольких
экземпляров Winsock-а во время работы.
Добавьте контрол Winsock в Вашу форму и установите
его индекс в 0, затем добавьте следующий код в
программу сервера, к которому Вы собираетесь
создавать несколько соединений:
Option Explicit
Public NumSockets As Integer
'//Public Variable to track number of Connections
Private Sub Form_Load()
Caption = Winsock1(0).LocalHostName & _
Winsock1(0).LocalIP
Winsock1(0).LocalPort = 1066
Print "Listening to " + Str(Winsock1(0).LocalPort)
Winsock1(0).Listen
End Sub
Private Sub Winsock1_Close(Index As Integer)
Print "Connection Closed :" & _
Winsock1(Index).RemoteHostIP
Winsock1(Index).Close
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, _
ByVal requestID As Long)
Print "Connection Request from : " & _
Winsock1(Index).RemoteHostIP
NumSockets = NumSockets + 1
'//Увеличиваем количество Сокетов на один.
Load Winsock1(NumSockets)
'//Загружаем новый объект Winsock
Winsock1(NumSockets).Accept requestID
'//Ждём нового соединения
End Sub
Private Sub Winsock1_DataArrival(Index As Integer, ByVal _
bytesTotal As Long)
Dim vtData As String
Winsock1(Index).GetData vtData, vbString
Print vtData
End Sub
Теперь Мы можем продолжать ожидать соединения.
|