Cтраница 2
При работе с сокетами в Windows чтение данных из сокета или запись в него могут осуществляться асинхронно, не прекращая выполнение другого кода в вашем сетевом приложении. Такое соединение называется неблокирующим. Поддержка сокетов в Windows посылает сообщение в тот момент, когда данные становятся доступны. [16]
Для этого также применяется сокет - uepHt - p ( рис. 27.41. Строка Interceptor GUI. [17]
![]() |
Приложение-клиент, испо. л зуюшс-е сокст TCP / IP. [18] |
На этом этапе создание сокета со стороны клиента завершено. [19]
Чтобы понять описание компонентов сокета, необходимо сначала познакомиться с некоторыми терминами, связанными с Интернетом вообще и с сокетами в частности. Сердцем Интернета является Transmission Control Protocol / Internet Protocol ( TCP / IP), который, по сути, является комбинацией двух отдельных протоколов. Эти протоколы, работая совместно, обеспечивают соединение через Интернет. Говоря кратко, IP отвечает за определение и маршрутизацию дейтаграмм ( datagrams) ( модулей данных для передачи через Интернет) и определение схемы адресации. TCP отвечает за услуги транспортировки более высокого уровня. [20]
При коммуникациях адрес сети и адрес сокета узнаются из SAP, соответственно из серверных объявлений и по запросу, а адрес узла автоматически считывается из сетевого адаптера узла. [21]
В главе 19 рассказывается о низкоуровневом программировании сокетов и протоколов Интернета. [22]
Для того чтобы две программы могли связаться через сокет ( в локальной сети или через Интернет), используются компоненты IdTCPClient и IdTCPServer. Один из них записывается в программе клиента, а другой - в программе сервера. При этом должен использоваться тот же самый порт, позволяющий программе клиента обращаться к хосту программы сервера. [23]
При работе с сокетами в Windows чтение данных из сокета или запись в него могут осуществляться асинхронно, не прекращая выполнение другого кода в вашем сетевом приложении. Такое соединение называется неблокирующим. Поддержка сокетов в Windows посылает сообщение в тот момент, когда данные становятся доступны. [24]
Одна сторона обращается к системному вызову listen, указывая в качестве параметра локальный сокет. При этом системный вызов создает буфер и блокируется до тех пор, пока не прибудут данные. Другая сторона обращается к системному вызову connect, задавая в параметрах дескриптор файла для локального сокета и адрес удаленного сокета. Если удаленный компьютер принимает вызов, тогда система устанавливает соединение между двумя сокетами. [25]
Каждый сокет поддерживает определенный тип работы в сети, указываемый при создании сокета. [26]
Эти классы предоставляют интерфейс для традиционных дисковых файлов, потоков OLE и сокетов Windows. Все классы, производные от CFile, могут использоваться совместно с объектом класса CArchive для выполнения сериализации. Обычно нет необходимости образовывать из них свои классы. В дальнейшем, возможно переопределить функцию Serialize для реализации необходимой сериализации документа. [27]
Для более сложных случаев необходимо выполнить код на сервере, а читать и писать непосредственно через подключенный сокет. Этот подход показан во второй команде протокола, описанного в показанном примере. [28]
Для поддержки этой модели существуют три типа сокетных соединений, о Клиентское соединение инициируется клиентом и связывает локальный сокет клиента с удаленным сокетом сервера. Сокеты клиента должны описать сервер, с которым требуется установить соединение, указав его имя хоста ( иди его IP-адрес) и порт. [29]
Процессы могут взаимодействовать друг с другом разными способами: через каналы, именованные каналы, почтовые ящики, сокеты ( sockets), удаленные вызовы процедур и общие файлы. Каналы бывают двух видов: байтовые каналы и каналы сообщений. Тип выбирается во время создания. Байтовые каналы работают так же, как в системе UNIX. Кроме того, существуют именованные каналы, которые тоже бывают двух видов. Именованные каналы могут использоваться в сети, а обычные каналы - нет. [30]