Cтраница 3
Чтобы понять описание компонентов сокета, необходимо сначала познакомиться с некоторыми терминами, связанными с Интернетом вообще и с сокетами в частности. Сердцем Интернета является Transmission Control Protocol / Internet Protocol ( TCP / IP), который, по сути, является комбинацией двух отдельных протоколов. Эти протоколы, работая совместно, обеспечивают соединение через Интернет. Говоря кратко, IP отвечает за определение и маршрутизацию дейтаграмм ( datagrams) ( модулей данных для передачи через Интернет) и определение схемы адресации. TCP отвечает за услуги транспортировки более высокого уровня. [31]
![]() |
Параметр ысинхронизации i. [32] |
Внешний источник должен быть подсоединен к EXTAL, при этом XTAL должен быть оставлен без физического соединения с платой или сокетом. [33]
Для поддержки этой модели существуют три типа сокетных соединений, о Клиентское соединение инициируется клиентом и связывает локальный сокет клиента с удаленным сокетом сервера. Сокеты клиента должны описать сервер, с которым требуется установить соединение, указав его имя хоста ( иди его IP-адрес) и порт. [34]
Среда разработки Delphi поддерживает множество разнообразных технологий: трехзвенные архитектуры, основанные на Windows NT и DCOM, приложения, основанные на TCP / IP и сокетах, а также веб-службы, основанные на XML и SOAP. В данной главе мы подробно рассмотрим многозвенные архитектуры, предназначенные для доступа к базам данных. Решения, ориентированные на XML, будут рассматриваться нами в главах 22 и 23, которые посвящены XML, SOAP и веб-службам. [35]
Для поддержки этой модели существуют три типа сокетных соединений, о Клиентское соединение инициируется клиентом и связывает локальный сокет клиента с удаленным сокетом сервера. Сокеты клиента должны описать сервер, с которым требуется установить соединение, указав его имя хоста ( иди его IP-адрес) и порт. [36]
Теперь, после установки подключения, необходимо заставить эти две программы связаться. Сокеты клиента и сервера читают и записывают правила, которые можно использовать для передачи данных, но записи многопоточного сервера, хранящего и обрабатывающего множество команд ( обычно основанных на строковых данных), далеко не тривиальны. [37]
Сокеты могут динамически создаваться и разрушаться. При создании сокета вызывающему процессу возвращается дескриптор файла, требующийся для установки соединения, чтения и записи данных, а также разрыва соединения. [38]
Мы подробно изучим сокеты, программирование Интернета и SOAP. [39]
Сокеты подобны каналам с тем отличием, что они при нормальном использовании соединяют процессы на разных машинах. Например, один процесс пишет в сокет, а другой процесс на удаленной машине читает из него. Сокеты также могут использоваться для соединения процессов на одной машине, но поскольку их использование влечет за собой большие накладные расходы, чем использование каналов, то, как правило, они применяются в контексте сети. [40]
Несмотря на то что данное приложение сильно напоминает другие клиентские и серверные приложения DataSnap, разработанные в главе 16, все же у рассматриваемой здесь программы есть одно очень существенное отличие: для взаимодействия с использованием интерфейса lAppServerSOAP программы SoapDataServer и SoapDataClient, основанные на SOAP, не используют СОМ. Напротив, соединения DataSnap, основанные на сокетах и HTTP, функционируют с использованием локальных СОМ-объектов и регистрации сервера в реестре Windows. Поддержка SOAP, встроенная в Delphi, позволяет реализовать решение, совершенно не зависимое от СОМ. [41]
Как только клиент делает новый запрос, сервер активизирует новый сокет, выделенный для этого конкретного соединения, и затем возвращается к слушанию. Слушающие серверные сокеты должны указать порт, предоставляющий реализуемую ими службу. [42]
Создание экземпляра TStream не имеет смысла, потому что этот класс абстрактен и не обеспечивает непосредственной поддержки сохранения данных. Вместо этого для загрузки данные из или в действительный файл, BLOB-поле, сокет или блок памяти можно использовать один из его производных классов. [43]
Функции установленного соединения аналогичны функциям канала. Процесс может читать из канала и писать в него, используя дескриптор файла для локального сокета. [44]
![]() |
Мастер создания удаленного модуля данных. [45] |