
- •1. Керування фреймами
- •2. Підтримка затримки у виконанні коду й зациклення із затримкою
- •3. Системні діалоги
- •4. Керування адресою відкритої сторінки
- •5. Керування інформацією про браузер
- •6. Керування інформацією про параметри монітора
- •7. Обмежене керування історією перегляду сторінок
- •8. Підтримка роботи з http
- •9. Розробка додатків в архітектурі клієнт-сервер за допомогою Delphi. Оптимізація клієнтських додатків. Типові помилки, що знижують продуктивність додатків
- •10. Реєстрація й конфігурація сервера ІnterBase
9. Розробка додатків в архітектурі клієнт-сервер за допомогою Delphi. Оптимізація клієнтських додатків. Типові помилки, що знижують продуктивність додатків
Delphi 7 поставляется с двумя наборами TCP-компонентов — сокет-компонентами Indy (IdTCPClient и IdTCPServer) и оригинальными компонентами Borland (TcpClient и TcpServer). Они размещены на закладке Internet палитры компонентов. Компоненты TcpClient и TcpServer были созданы для замены компонентов ClientSocket и ServerSocket, использовавшихся в прежних версиях Delphi. Сейчас компоненты ClientSocket и ServerSocket объявлены устаревшими (хотя все еще доступны), и Borland предлагает использовать вместо них компоненты Indy.
Использование TCP-компонентов Indy
Для того чтобы две программы могли связаться через сокет (в локальной сети или через Интернет), используются компоненты IdTCPClient и IdTCPServer. Один из них записывается в программе клиента, а другой — в программе сервера. При этом должен использоваться тот же самый порт, позволяющий программе клиента обращаться к хосту программы сервера. Затем можно установить соединение между этими двумя приложениями.
Подключения через сокеты
При передаче через сокет начинает работу программа-сервер, которая просто ждет запроса от программы-клиента. Программа-клиент запрашивает соединение у сервера, к которому требуется подключение. Когда клиент посылает запрос, сервер может принять соединение, открывая специальный сокет на стороне сервера, который образует соединение с сокетом на стороне клиента.
Для поддержки этой модели существуют три типа сокетных соединений.
Клиентское соединение инициируется клиентом и связывает локальный сокет клиента с удаленным сокетом сервера. Сокеты клиента должны описать сервер, с которым требуется установить соединение, указав его имя хоста (или его IP-адрес) и порт.
Слушающие соединения (listening connections) — пассивные серверные сокеты, ожидающие запросов клиента. Как только клиент делает новый запрос, сервер активизирует новый сокет, выделенный для этого конкретного соединения, и затем возвращается к слушанию. Слушающие серверные сокеты должны указать порт, предоставляющий реализуемую ими службу. (Клиент соединится через этот порт.)
Серверные соединения — это соединения, активизируемые серверами; они принимают запрос от клиента.
Разница в типах подключения имеет значение только на этапе установки связи между клиентом и сервером. В дальнейшем (после того, как связь установлена) обе стороны могут обмениваться друг с другом данными и запросами в произвольном порядке.
При работе может возникнуть ошибка "Asynchronous socket error 10053". Даная ошибка выскакивает,если серверу отправить слишком много буфера(ов) (используя SendBuf), и этот клиент, который их отправил, сразу отключается от сервера.
10. Реєстрація й конфігурація сервера ІnterBase
Для установки и регистрации сервера ІnterBase необходимо поместить на форму компоненты ServerSocket и ClientSocket. Важным параметром для обоих является порт. Только при одинаковом значении свойства Port, связь между ними установится.
Компонент ТserverSocket включает приложение в сервер TCP/IP. Он принимает запросы на TCP/IP-соединения от других машин, и устанавливает соединение при получении запросов.