Умнейшие! Нужны идеи по ответному соединению Winsock

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alban
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 27.03.2004 (Сб) 18:00
Откуда: Minsk

Умнейшие! Нужны идеи по ответному соединению Winsock

Сообщение Alban » 27.03.2004 (Сб) 18:04

Вот не могу сделать так что бы было соединение с ответом о получении, есть допустим 10 запросов на сервак, но запрос следующий посылался бы тогда когда получен ответ
от сервера, что запрос получен.
Я делал обратный ответ посылкой команды типо w1.sendata "OK" на сервер.
Но не сображу как на клиенте оформить это.
Добавьте кто нить мозгов!!!!!!!!
Как это лучше сделать? Помогите. :shock:

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 28.03.2004 (Вс) 8:31

Создай TextBox иши туда IP сервака и шли
Код: Выделить всё
dim a as string
a = "Ok"
Winsock1.sendata Text1.text, "A"
Max!

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 29.03.2004 (Пн) 1:56

Ну здесь я бы пошел простым путем...
На клиенте стоит листбокс, в который любой элимент программы вписывает в очередь через "List1.Addnew [строка]" сообщение, которое надо заслать на сервер, на клиенте также есть переменная уровня формы, которая будет отвечать за отправку текущего сообщения (ПЕР)

Вот алгоритм.
С(Сервер): слушает порт
К(клиент): Коннектится к серверу: ПЕР=0
С:Приконнектив клиента шлет ему "ОК"
К:В событии Winsock1_DataArrival, при получении сообщения "ОК", если ПЕР<List1.ListCount-1 тогда ПЕР=ПЕР+1, и отправляем на сервак List1.List(ПЕР).
С:В событии Winsock1_DataArrival, при получении сообщения, засылаем клиенту "ОК" (уведомление об обработке)
....
С:Засылаем команду на разрыв связи, и отключаемся.
К:При получении команды закрываемся.

Проверенно - Работает. Таким образом я делал асинхронную обработку информации, т.е. данные уходили на сервер ... сервер говорил, что он готов (тока ещё пересылал номер задачи) ... потом обрабатывал события и засылал с номером задачи ответ клиенту. так что Клиент не вис пока сервак "думал".

Успехов
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 01.04.2004 (Чт) 16:44

если надо ждать ответа от сервера, не надо посылать "Ок". просто обрабатывай событие SendComplete. оно выполняется когда сервер получил отосланные данные. когда отправка завершена, посылай следующую команду или продолжай выполнение своей программы.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 02.04.2004 (Пт) 23:11

Тут как я понял ... сервер должен уведомить клиента о том, что получил месагу, а потом уже её обрабатывать.
Ну всем нам знакомо зависани программы, которая ждет пока данные обрабатываются (скажу по большому секрету, пользователи любят такие моменты), а тут клиент пишет, ЖДИТЕ, и может заслать очередную порцию заданий серваку.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 18

    TopList