Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КСА.doc
Скачиваний:
64
Добавлен:
20.11.2018
Размер:
79.87 Кб
Скачать

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-соединения от других машин, и устанавливает соединение при получении запросов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]