Как заставить 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 Теперь Мы можем продолжать ожидать соединения.
|