stikriz11 писал(а):И все работает даже по тырнету через впн соединялись с США.
А искуственные тесты были? С имитацией потерь пакетов?)
США это не обязательно показатель качества кода, только качества связи. Выше не писал, но появление поста про TMNetSim обусловлено тем, что колхозная черновая сборка год пашет между моим домом где сервер, офисом в москве и офисом питера. И прошлый месяц был веселым. Забитый московский канал напрочь положил попытки программы что то получить от сервера, в то время как питер все шикарно получал.
Приведенный вами код показывает только логику начала, а не обработки входящего потока данных. Прежде чем отправлять сообщение нужно убедиться что предыдущее дошло. А если не дошло, то что делать. Если отправлять снова, то как много раз. В synapse я не нашел способа наверх в логику приложения поднять ответ протокола TCP о доставке.
По этой теме сильно не сдвинулся, но черновые наработки протестил при работе через UserGate. Вот тут у меня ступор. Что эта прослойка делает, чтобы так пакостит? При работе через него периодически клиент думает что подключен, а тунеля связи уже нет. Или штатно делаю дисконнект, и переподключение тут же, а сервер присылает что уже подключен аккаунт.
не актуальная документация, но пойдет для понимания
Руководство
по установке и настройке
сервера приложений SQLProxy32
версия 3
1. Назначение
Сервер приложений предназначен для обеспечения доступа к базам
данных клиентских приложений по протоколу TCP/IP. Настоящая
версия поддерживает следующие виды СУБД:
• Oracle
• Interbase/Firebird
• PostgreSQL
• MSSQL
• MySQL
2. Установка
Программа не требует специальных мероприятий по установке и сводится к
распаковке архивного файла sqlproxy32.zip в папку по усмотрению пользователя.
Каталог сервера приложений содержит следующие файлы и папки:
SQLProxy32.exe исполняемый модуль программы
SQLProxy32.db файл конфигурации формата sqlite3
\drivers\firebird25\
\drivers\firebird30\
\drivers\firebird40\
\drivers\firebird50\
\drivers\oracle\
\drivers\pg\
\drivers\mssql\
\drivers\mysql\
3. Настройка
Сервер приложений может работать в двух режимах – в качестве обычного приложения и в качестве службы операционной системы. Главное окно программы содержит две вкладки – Сервисы и Настройки. Вкладка Сервисы содержит список сервисов предоставляемых
сервером приложений. Назначение сервисов будет описано в разделе Администрирование. Для регистрации сервера приложений
в качестве службы операционной системы необходимо запустить
исполняемый модуль с ключом /install или нажатием
соответствующей кнопки в главном окне программы во вкладке
Сервисы. Запуск исполняемого модуля с ключом /uninstall удаляет
программу из списка системных служб. Имя службы сервера
приложений SQLProxy32.
Вкладка Настройки позволяет установить TCP порт (по умолчанию 5201)
4. Администрирование
Для подключения к серверу клиентские приложения должны
адресовать свои запросы на порт указанный в настройках сервера
приложений. Номер порта (по умолчанию 5201) можно изменить во
вкладке Настройки главного окна программы.
Администрирование сервера приложений сводится к настройке
сервисов предоставляемых программой клиентским приложениям.
Сервис в терминах сервера приложений представляет собой
описание подключения к базам данных. Клиентское приложение
использует имя назначенное администратором конкретному сервису
для получения доступа к базам данных. Вкладка Сервисы главного
окна программы позволяет просматривать, создавать, изменять и
удалять перечень сервисов. Создание и изменение сервиса
производится в окне параметров сервиса вызываемого
соответствующими кнопками панели инструментов.
Обязательным параметром является имя сервиса, которое должно
быть уникальным в пределах данной конфигурации сервера
приложений. В зависимости от выбранного драйвера поля настроек
содержат параметры подключения для конкретной СУБД. Отдельно
следует отметить, что для драйвера Interbase/Firebird в случае, если
IP адрес сервера Interbase/Firebird не указан, сервер приложений
будет функционировать в режиме embedded, т.е. выступать в роли
сервера СУБД самостоятельно.
Структура строки подключения к различным СУБД:
Oracle: имя хоста или IP адрес;номер порта;SID экземпляра, режим
доступа (normal – по умолчанию, sysdba, sysoper, sysasm).
Например: 192.168.1.10:1521/ORADB;NORMAL
Interbase/FireBird: имя файла или псевдонима БД;кодовая
страница;роль.
Например: c:\data\database.fdb;UTF8;public
Флаг Системная авторизация предписывает серверу приложений
подменять имя пользователя и пароль, указанные клиентским
приложением, на системный логин и пароль при их наличии.
Флаг Включено позволяет активизировать или отключать доступ к
сервису.
5. Протоколирование
В ходе работы программа ведет протоколирование критичных для
функционирования сервера приложений событий в локальную базу
SQLProxy32.log следующего формата:
Системное время
Текст ошибки
6. Примеры
В папке samples размещены исходные коды и компилированные
примеры клиентских приложений написанных на Delphi и Lazarus