Где рыть?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Где рыть?

Сообщение Fedorfx » 31.01.2005 (Пн) 3:36

Есть клиент и сервер в инете.
Сервер шлет клиенту пакеты с инфой а клиент по получению оных шлет подтверждения, типа получил.
Нужно
1- Читать входящие пакеты и обрабатывать их( сделано с помощью самопального снифера)
2- Выполнить определенные действия - которые занимают 200-300 мсек
3-нажать на клиенте кнопку для того чтобы он отправил команду на сервер.
Проблемма - с пенкта 1 по пункт 3 проходит около 200 мсек. и за это время может произойти смена пакета. Как заморозить входящий трафик на время но при этом оставить работоспособным исходящий.
Где рыть, что читать. Первое что приходит на ум это своя прокся но может что еще. А то потрачу на реализацию время а ларчик проще открыватся может.
P.S. Клиента трогать незя.

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 31.01.2005 (Пн) 8:27

Я так понял: "Сервер отправляет первый пакет ждет подтверждения от клиента и отпралявляет след. пакет"
При этом проблем не должно быть

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 31.01.2005 (Пн) 11:31

Mleha писал(а):Я так понял: "Сервер отправляет первый пакет ждет подтверждения от клиента и отпралявляет след. пакет"
При этом проблем не должно быть


Неправильно. Ничего сервер не ждет.
Например.
Стоит светофор. Когда загорится красный, надо нажать кнопку. Но на то чтобы понять что это красный нужно 200-300 мсек. За это время он уже может сменить цвет. Поэтому нужно после изменения цвета заморозить поступающие данные( не сам светофор а именно данные, тк.к кнопка отправки реализована в самом светофоре)

Inferno
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 26.01.2005 (Ср) 1:06

Сообщение Inferno » 31.01.2005 (Пн) 12:04

Очевидно данные стоит хранить где-то до настуления события. Пиши их в файл. Если событие удалось, то поднимаешь данные из файла, если нет до дропаешь файл и ждешь следующих.

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 31.01.2005 (Пн) 13:00

...
Последний раз редактировалось Fedorfx 31.01.2005 (Пн) 15:26, всего редактировалось 1 раз.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.01.2005 (Пн) 13:05

И напрасно, он верно говорит.
Принимаешь все запросы и ставишь их в очередь.
Дальше есть варианты, или ты обрабатываешь очередь снизу вверх, или не добавляешь элементы в очередь, если она не пустая.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 31.01.2005 (Пн) 13:21

FIFO - alibek прав

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Где рыть?

Сообщение codemaster » 31.01.2005 (Пн) 13:28

Fedorfx писал(а):Есть клиент и сервер в инете.
Сервер шлет клиенту пакеты с инфой а клиент по получению оных шлет подтверждения, типа получил.
.



Клиент один или много ?
//<-
Mit freundlichen Grüßen
//->

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 31.01.2005 (Пн) 14:53

to codemaster
Клиент один

to alibek
-->>>Принимаешь все запросы и ставишь их в очередь.<<<----
В принципе мой вопрос именно о том как это реализовать.
т.е. КАК ПРИНЯТЬ, ПОСТАВИТЬ, ОТПРАВИТЬ пакеты, и пускать клиенту только тогда когда я разрешу. Получается врезка в протокол передачи данных.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.01.2005 (Пн) 14:55

Так а что тут непонятного?
Есть фрагмент кода, принимающий запросы клиентов. Сейчас у тебя работает так: принял - обработал - ответил. Сделай такую схему: принял - отправил в очередь. Кроме того, будет крутится другой процесс/цикл, который будет обслуживать очередь. Ее алгоритм: взял элемент из очереди - обработал - ответил - удалил элемент из очереди.
Lasciate ogni speranza, voi ch'entrate.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 31.01.2005 (Пн) 15:12

наверное есть два решения

русский способ : через файлы на диске (+ см. ответ alibeka )
красиво + возможность расширения: MSMQ
//<-
Mit freundlichen Grüßen
//->

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 31.01.2005 (Пн) 15:24

:oops:
Я наверно забыл сказать самое главное.
Ни клиент ни сервер не мои проги и я не имею к ним доступа.
Я могу только отслеживать трафик на самой машине, и поэтому вопрос относиться к воздействию на протокол передачи.

to Inferno - Я был неправ, сорри.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.01.2005 (Пн) 15:32

Ну... Так это уже совсем другое дело.
Помоему тогда никак.
Lasciate ogni speranza, voi ch'entrate.

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 31.01.2005 (Пн) 16:11

Да нет, сделать можно .
Ведь как то работают всякие там Outpost и убивалки банеров.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.01.2005 (Пн) 16:24

Так они ведь не задерживают, они рубят эти запросы. А баннерорезка вообще по другому работает, она на URL реагирует.
Lasciate ogni speranza, voi ch'entrate.

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 31.01.2005 (Пн) 16:37

У меня стоит Outpost.
Когда какой либо процесс не имеющий правила пытается вылезти или залезть в машину, то вылезает мессага Outposta/ Типа такой то процесс хочет то то сделать. И вопрос - разрешить или нет. Так вот где то все это время сам пакет с данными висит.
А атрубалка банеров не только по URL работать может а так же и по размеру итд.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.01.2005 (Пн) 17:17

Так это Outpost. После установки весь трафик идет через него.
А вот со своей программы влезть в чужой сокет помоему нереально.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 31.01.2005 (Пн) 17:28

ищи в инете пакет PCAP, может чего придумаешь для себя

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 31.01.2005 (Пн) 17:30

вот тебе даже ссылочка на это http://www.bribes.org/perl/wnetpcap.html#dl

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 31.01.2005 (Пн) 17:30

alibek писал(а):А вот со своей программы влезть в чужой сокет помоему нереально.


А кому сейчас легко? Если ничего не делать то ничего и не получется. Другое дело что всегда есть несколько путей, и хочется рыть в более менее легком направлении.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList