izhevsk.ru Главная /  Программирование /  Проблема взаимодействия Клиент - Сервер
тема закрыта

Имя:
Пароль:
 зарегистрироваться | Войти через
напоминатель пароля
Проблема взаимодействия Клиент - Сервер
НОВАЯ ТЕМА правила | поиск | картинки | | | о форуме |
  Новости | Авто | Недвижимость | Работа | Бизнес | Стройка | Объявления | Совместная покупка | | |
  следующая тема | предыдущая тема
Автор Тема:   Проблема взаимодействия Клиент - Сервер   версия для печати
Rashid
Рейтинг: 51/-43
написано 9-8-2012 11:35 Rashid

Задача: есть Сервер и Клиент. Есть канал связи (протокол) с негарантированной доставкой пакета. Но целосность пакета соблюдается. Т.е. если доставил - то без ошибок.
Подключение может инициализировать только Клиент.
Процесс такой: сотрудник (на стороне Клиент) открывает форму заявки, заполняет ее для определенных товаров. После этого нажимает Записать - в это момент Клиент создает обращение к Серверу. Если остаток в центр. базе больше нуля для опред. товара - то обратно отправляется ответ что товар есть в нужном количестве. В этот момент Сервер создает аналогичную заявку в своей базе и ЗАПИСЫВАЕТ ее. Потом отсылает ответ Клиенту и в его базе заявка так же записывается в его локальную базу.
Проблема в том, что иногда положительный ответ может не дойти до клиента, т.е. не сервере создана заявка, а на клиенте нет.
Нужно придумать такой механизм, что пусть лучше заявки не будут созданы на обеих сторонах, чем на одной из них.

зы: Сервер никак послать запрос клиенту не может - только ОТВЕТИТЬ на присланный запрос.
Показать текст сообщения полностью
Glas
Рейтинг: 64/-20
-- написано 9-8-2012 11:47 Glas

а задолбать сервер пока ответ не придет нельзя?
Rashid
Рейтинг: 51/-43
-- написано 9-8-2012 12:23 Rashid

долго, т.е. неответ идет по таймауту, а он 10 минут
Glas
Рейтинг: 64/-20
-- написано 9-8-2012 12:27 Glas

в любом случае придется общаться серверу с клиентом. Как вариант после отправки ответа с сервера клиенту, клиент должен ответить "я создал" заявку, если не ответил, то сервер ее удаляет.
Rashid
Рейтинг: 51/-43
-- написано 9-8-2012 12:35 Rashid

ага, так и придется делать
Leeloo
Рейтинг: 0/0
-- написано 12-8-2012 02:12 Leeloo

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

история редактирования

Rashid
Рейтинг: 51/-43
-- написано 12-8-2012 23:09 Rashid

такой счетчик есть - это номер заявки, она одинаковая на клиенте и на сервере

200x150 320x240 400x300 800x600    без переносов   
быстрый ответ   

подпись
следующая тема | предыдущая тема

Главная /  Программирование /  Проблема взаимодействия Клиент - Сервер форумы izhevsk.ru

 
 
 
 
 
© ООО "Марк" 2020
 
Интернет-провайдер КК МАРК-ИТТ