Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WinSock в Visual Basic 6.0, утрата соединения 
:(
    Опции темы
manson
Дата 13.11.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



Краткое описание:

На сервере имеется массив винсоков. Первый елемент массива всегда активен, так как отслеживыет новые запросы на соединения. 

На стороне сервера:

Код

Private Sub Form_Load()
W(0).LocalPort = 1777
W(0).Listen           
End Sub


Код

Private Sub W_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Static CnctInd As Long
CnctInd = CnctInd + 1
W(CnctInd).LocalPort = 1777
W(CnctInd).Accept requestID
End Sub


На стороне клиента:

Код

Private Sub Form_Load()
W.RemoteHost = "10.8.136.74"
W.RemotePort = 1777
W.Connect
End Sub


Описание проблемы: 

Запускаю сервер. Подключается клиент №1 - все нормально, связь с сервером установлена. Затем удачно подключается клиент №2, в ходе чего, почему то отключается №1. Если отключить №2, то №1 снова восстанавливает связь с сервером сам.  Таким образом последний подключившийся глушит связь всех предыдущих, пока сам находица в работе.
PM MAIL   Вверх
neic
Дата 13.11.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Попробуй записать это в глобальную переменную.
Код

Static CnctInd As Long


Ещё можно попробовать давать клиенту не порт 1777, а порт 1778.
PM MAIL WWW ICQ Skype   Вверх
Akina
Дата 13.11.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



У тебя пересечение по портам, winsock видимо не умеет это обрабатывать...
Попробуй испольбзовать нулевой экземпляр для получения параметров соединения, в которых передавать номер порта для установления рабочего коннекта, а саму работу вести на порте, отличном от 1777...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
neic
Дата 14.11.2008, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Akina, как раз то что я писал выше =)
Тут наверн как ICQ делает, все подключаются к 5190, а при подключении он выдаёт адрес и порт куда коннектится.
PM MAIL WWW ICQ Skype   Вверх
Akina
Дата 14.11.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(neic @  14.11.2008,  01:48 Найти цитируемый пост)
Тут наверн как ICQ делает, все подключаются к 5190, а при подключении он выдаёт адрес и порт куда коннектится.

Во-первых, ICQ выдает только адрес, а порт как был, так и остается 5190 или что ты поставишь в настройках (у меня 443 выставлен, например).
Во-вторых, я говорю немного о другом, всё-таки.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
XOXOJI
Дата 14.11.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.9.2008

Репутация: 2
Всего: 2



поступить лучше так...

кидаю кусок кода из своей проги

пояснения... max_online-количество пользователей, которые были когда либо подключены за период работы проги (она глобальная!!!)
Код

Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
  For i = 1 To max_online    ' тут проверка на пустые винсоки, с которых отконектились когда-либо и не были заняты
    With Winsock1(i)
      If .State = sckClosed Then 'если свободет, то конектим к нему
        .Accept requestID
        Exit For
      End If
    End With
  Next i
  If i > max_online Then 'это если все заняты, то грузим новый и конектим к нему
    Load Winsock1(max_online + 1)
    With Winsock1(max_online + 1)
      .Protocol = sckTCPProtocol 
      .LocalPort = wsk_port ' тут порт указываешь на который конектиться
      .Accept requestID
    End With
    max_online = max_online + 1
  End If
End If
End Sub


Это сообщение отредактировал(а) XOXOJI - 14.11.2008, 11:11
PM MAIL   Вверх
manson
Дата 14.11.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



Акина, я примерно понел. Клиент посылает запрос на соединение. На сервере его принемает нулевой елемент массива и в ответ отправляет свободный порт. Получается клиент должен повторно реконектица когда получает инфу с новым портом. Я правильно понел?


PM MAIL   Вверх
Akina
Дата 14.11.2008, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Совершенно верно.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
manson
Дата 14.11.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



Акина, я знаю как єто реализовать на стороне клиента. Но вот на стороне сервера возникают непонятки с последовательностью обработки запросов. Как сервер будет различать, пришол ли это первый запрос или запрос уже на соединение по новому порту? Подскажите, пожалуйста, как дополнить мой вышезазначеный код со стороны сервера. Заранее спасибо!

Это сообщение отредактировал(а) manson - 14.11.2008, 14:37
PM MAIL   Вверх
Akina
Дата 14.11.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(manson @  14.11.2008,  15:37 Найти цитируемый пост)
Как сервер будет различать, пришол ли это первый запрос или запрос уже на соединение по новому порту?

А зачем ему это? Пришел запрос на соединение - сервер загружает экземпляр винсока на новый порт и сообщает его клиенту (или сообщает, что пока свободных портов нет, можно курить)... если винсок в течение заданного времени (скажем 5 минут или там полчаса) не получил ни одного запроса, или получил сигнал о завершении сеанса - он самоликвидируется.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
manson
Дата 14.11.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



А да, точно! Спасибо за помощь smile 
PM MAIL   Вверх
manson
Дата 14.11.2008, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



Блин, всеравно не выходит  smile 
сервер загружает экземпляр винсока на новый порт 

Код

Private Sub W_ConnectionRequest(Index As Integer, ByVal requestID As Long) 
    Static CnctInd As Long
    CnctInd = CnctInd + 1
    W(CnctInd).LocalPort = iPort
    W(CnctInd).Listen
    W(0).SendData "PORT" & iPort
    iPort = iPort + 1
End Sub


Где ошибка?
PM MAIL   Вверх
manson
Дата 14.11.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



И вообще какая разница между LocalPort и RemotePort?
PM MAIL   Вверх
neic
Дата 14.11.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Отредактировано читай ниже

Это сообщение отредактировал(а) neic - 14.11.2008, 23:26
PM MAIL WWW ICQ Skype   Вверх
neic
Дата 14.11.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Такс =) ТЫ меня заинтриговал и я сам решил написать сервер-клиент

Вот код сервера:
Код

Public s As Integer
Private Sub Form_Load()
W(0).LocalPort = "7777"
W(0).Listen
End Sub

Private Sub W_ConnectionRequest(Index As Integer, ByVal requestID As Long)
s = s + 1
Load W(s)
W(s).Close
W(s).Accept requestID
W(s).SendData "Привет" & s
End Sub

Private Sub W_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim ComeData As String
W(Index).GetData ComeData
MsgBox ComeData & "---" & Index
End Sub


вот код клиента:
Код

Private Sub Command1_Click()
WS.SendData Text1
End Sub

Private Sub Form_Load()
WS.Close
WS.Connect "localhost", 7777
End Sub

Private Sub WS_DataArrival(ByVal bytesTotal As Long)
Dim ComeData As String
WS.GetData ComeData
MsgBox ComeData & "---" & Index
End Sub


Это сообщение отредактировал(а) neic - 14.11.2008, 23:30
PM MAIL WWW ICQ Skype   Вверх
manson
Дата 15.11.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



короче я проверил и отследил такое: клиент посылает данные на сервер - тут все норм. проблема оказалась в другом - сервер неправильно отсылает данные клиенту, отсылая их только одному клиенту. к примеру, подключено три клиента и он трижды шлет одному из них данные (тобишь неправильно распределяет).

Код

For i = 1 To iNumb
    W(i).SendData  txtPack.Text
Next


в этом случае поче му то получает данные только последний.

Это сообщение отредактировал(а) manson - 15.11.2008, 18:18
PM MAIL   Вверх
Akina
Дата 15.11.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(manson @  15.11.2008,  19:00 Найти цитируемый пост)
подключено три клиента и он трижды шлет одному из них данные (тобишь неправильно распределяет).

А где ты закрываешь сеанс связи с первым клиентом??? 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
neic
Дата 16.11.2008, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Код

Private Sub Command1_Click()
For i = 1 To 2
    W(i).SendData "Работает"
Next
End Sub


И у меня этот код работает. Не знаю, что там у тебя.
Повторяю коды:
Код

'сервер
Public s As Integer

Private Sub Command1_Click()
For i = 1 To 2
    W(i).SendData "Работает"
Next
End Sub

Private Sub Form_Load()
W(0).LocalPort = "7777"
W(0).Listen
End Sub

Private Sub W_ConnectionRequest(Index As Integer, ByVal requestID As Long)
s = s + 1
Load W(s)
W(s).Close
W(s).Accept requestID
W(s).SendData "Привет" & s
End Sub

Private Sub W_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim ComeData As String
W(Index).GetData ComeData
MsgBox ComeData & "---" & Index
End Sub

'клиент
Private Sub Command1_Click()
WS.SendData Text1
End Sub

Private Sub Form_Load()
WS.Close
WS.Connect "localhost", 7777
End Sub

Private Sub WS_DataArrival(ByVal bytesTotal As Long)
Dim ComeData As String
WS.GetData ComeData
Text1 = ComeData
End Sub


Добавлено через 1 минуту и 53 секунды
Код

For i = 1 To 2
    W(i).SendData "Работает"
Next


Где 2, это кол-во подключённых клиентов.
PM MAIL WWW ICQ Skype   Вверх
XOXOJI
Дата 16.11.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.9.2008

Репутация: 2
Всего: 2



Код

Private Sub W_ConnectionRequest(Index As Integer, ByVal requestID As Long)
s = s + 1
Load W(s)
W(s).Close
W(s).Accept requestID
W(s).SendData "Привет" & s
End Sub
тут немного не эргономично сделано... если кто-то из клиентов отконектился... то контрол будет пустовать, а при подсоединении нового будет грузиться еще один контрол...

у меня в примере это предусмотрено
PM MAIL   Вверх
manson
Дата 16.11.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



Акина, я нигде связь не закрываю! А зачем это нужно делать?
neic, везет тебе. У меня почему то шлет все последнему. По твоему коду это 2 винсок.

PM MAIL   Вверх
neic
Дата 16.11.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Цитата(XOXOJI @  16.11.2008,  11:26 Найти цитируемый пост)
тут немного не эргономично сделано... если кто-то из клиентов отконектился... то контрол будет пустовать, а при подсоединении нового будет грузиться еще один контрол...

у меня в примере это предусмотрено 

Я писал и не такие клиенты. Для примера достаточно того, что я написал. Если автор хочет чтобы сделали за него, то за $ можно и весь проект написать.

PM MAIL WWW ICQ Skype   Вверх
manson
Дата 16.11.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



Автор не хочет! Сам не тупой и умею загружать, выгружать и находить не занятые. Проблема в том, что почему то инфа шлется только на один из винсоков, хотя код у меня правильный.
PM MAIL   Вверх
Akina
Дата 16.11.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(manson @  16.11.2008,  13:12 Найти цитируемый пост)
я нигде связь не закрываю! А зачем это нужно делать?

Вот именно затем и следует закрывать сеанс, чтобы ответ получал нужный клиент, а не первый из незакрытых.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
manson
Дата 16.11.2008, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



Акина, тогда скажи, пожалуйста, в каком месте надо закрывать (на стороне сервера или клиента) и каким способом.
Код

For i = 1 To iNumb
    W(i).SendData  txtPack.Text : W(i).Close
Next


Примерно так?
PM MAIL   Вверх
Akina
Дата 16.11.2008, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Конечно... Ты открыл сокет и слушаешь. Как только пришел запрос на соединение - ты формируешь сокет для работы по этому запросу, отправляешь параметры для работы (номер порта) и закрываешь соединение, продолжая слушать, не постучится ли кто-нить ещё.
Кстати, неплохо бы от клиента получать какие-нить его данные (например SID текущей учётной записи) - чтобы ... впрочем, придумай сам и тогда уж реши, надо оно тебе или нет.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
neic
Дата 17.11.2008, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Цитата(Akina @  16.11.2008,  23:21 Найти цитируемый пост)
Кстати, неплохо бы от клиента получать какие-нить его данные (например SID текущей учётной записи)

Я так понял, чтобы вести лог событий...т.е. заданые настройки, сохранённая инфа и т.д.?

Интересно. Тогда можно будет закрывать каждый клиент => освободит от нужд пинговать клиент, чтобы проверить "живы" ли клиенты.

Т.е. 1запрос=1винскосу, который после посылки сообщения отключается, но при этом каждый раз придётся подключаться к серверу.

или я что-то не так понял.

PM MAIL WWW ICQ Skype   Вверх
Akina
Дата 17.11.2008, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(neic @  17.11.2008,  01:06 Найти цитируемый пост)
освободит от нужд пинговать клиент, чтобы проверить "живы" ли клиенты.

Серверу должно быть глубоко плевать, живы клиенты или нет. Это ИХ забота сообщать серверу что они живы.
Цитата(neic @  17.11.2008,  01:06 Найти цитируемый пост)
Т.е. 1запрос=1винскосу, который после посылки сообщения отключается, но при этом каждый раз придётся подключаться к серверу.

Что за ...? Не путай начальное подключение для получения параметров соединения (с нулевым сокеном) и сеанс связи с переданным на клиента сокетом.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
XOXOJI
Дата 17.11.2008, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.9.2008

Репутация: 2
Всего: 2



что-то я вас совсем не пойму.... зачем разные порты??? на мой взгляд это лиш лишний гемор, но это можно реализовать так
сервер
Код

Option Explicit
Public s As Integer

Private Sub Command1_Click()
Dim i As Integer
For i = 1 To s
  w(i).SendData "Работает"
Next i
End Sub

Private Sub Form_Load()
w(0).LocalPort = 7777
w(0).Listen
End Sub

Private Sub w_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
  w(0).Accept requestID
  w(0).SendData "номер нового порта"
  w(0).Close
  w(0).Listen
  s = s + 1
  Load w(s)
  w(s).LocalPort = 7778 ' номер нового порта
Else
  w(Index).Accept requestID
End If
End Sub

клиент
Код

Private Sub Command1_Click()
W.RemoteHostIP = "ip"
W.RemotePort = 7777
W.Connect
End Sub

Private Sub W_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Dim port_num As Integer
W.GetData data, bytesTotal
If Left$(data, 3) = "IP=" Then
  port_num = Val(Right$(data, Len(data) - 3))
  W.Close
  W.RemotePort = port_num
  W.Connect
End If

End Sub

PM MAIL   Вверх
neic
Дата 17.11.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Цитата(XOXOJI @  17.11.2008,  05:25 Найти цитируемый пост)
Private Sub w_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
  w(0).Accept requestID
  w(0).SendData "номер нового порта"
  w(0).Close
  w(0).Listen
  s = s + 1
  Load w(s)
  w(s).LocalPort = 7778 ' номер нового порта
Else
  w(Index).Accept requestID
End If
End Sub

Вот интересно, к чему мне подключатся если сервер не открыт???? smile 

Учитывая что строчка:
Код

w(0).Listen


стоит в событии:
Код

ConnectionRequest


Мне становится очень интересно, а к чему собственно будет подключаться первый клиент????

Мы уже с акиной разобрали, что порты тут не причём.

Это сообщение отредактировал(а) neic - 17.11.2008, 18:01
PM MAIL WWW ICQ Skype   Вверх
XOXOJI
Дата 17.11.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.9.2008

Репутация: 2
Всего: 2



гдето я утра с просони за тупил, сорри  smile 
PM MAIL   Вверх
manson
Дата 21.11.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

Репутация: нет
Всего: нет



Продолжая тему, кому еще интересно...
Проблема была не в портах, а просто надо было заменить это:

Код

For i = 1 To iNumb
    W(i).SendData  txtPack.Text
Next


На это:

Код

For i = 1 To iNumb
    W(i).SendData  txtPack.Text
    DoEvents
Next


И все клиенты получат желаемые данные.
Спасибо всем за поддержку.  smile 
PM MAIL   Вверх
Drave
Дата 26.9.2010, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.9.2007

Репутация: нет
Всего: нет



Сорри за то что поднимаю тему но т.к. пользуюсь подобным кодом хотел спросить как сделать так чтобы при отключения одного из клиентов сервер не отправлял ему данные? А то если он шлет ему данные тоже то возникает ошибка(
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0850 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.