![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Garmahis |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: нет Всего: 4 |
Есть несколько клиентов переписывающихся между собой по почте. Для этого они используют один и тот же почтовый ящик.
Вот так идёт загрузка почты:
Вначале теме писем они всегда первым символом всталяют собаку если нет собаки значит спам и письмо удаляется. После собаки идёт номер клиента по которому он определяет что письмо адресовано ему. Проблема в следующем. Если например клиент 1 проверяет почту, а в это же время криент 2 пытается сделать тоже самое, то клиента 1 отрубает и выскакивет сообщение что вы отключены потому что кто-то другой пытается получить почту. Подскажите как этого избежать? Можно ли перед коннектом проверить подключён ли ктонить ещё? |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Примитив: поставить try...finally или try...except
|
|||
|
||||
| Garmahis |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: нет Всего: 4 |
Примитив очевиден. Но тут проблема в том, что не желательно что бы клиент два раза получал одно и тоже послание. Тоесть если он его загрузил но удалить не успел при повторном конекте он будет его второй раз получать. Это конечно тоже можно обойти введя например номер сообщения, но всё равно проблемы это не решает. клиента одновременно работает до 5 штук. По идее они должны проверять почту не реже раза в минуту. Тоесть вероятность обрыва получается велика...
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Данная проблема разрешается на уровне сервера.
Нужно создать отдельные почтовые ящики для каждого клиента. А основной почтовый ящик должен продублировать сообщение всем и удалить письмо. Если сервер этого не умеет, то можно создать элементарную программу, которая будет мониторить ящик и рассылать копию письма всем. Потом оригинал удалять. Проблема решается просто тиражированием письма на множество ящиков. |
|||
|
||||
| Garmahis |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: нет Всего: 4 |
Мне кажется это не реально. Клиентов может быть сколько угодно. Одни могут появляться другие исчезать. Не возможно же для каждго создавать по почтовому ящику!
|
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 3 Всего: 50 |
Garmahis,
На сервере должно быть разрешено одновременное подключение нескольких клиентов под одним логином. -------------------- |
|||
|
||||
| Garmahis |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: нет Всего: 4 |
Сервер то не мой
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |