Перевод сокета в активный или пассивный режим

Сразу после создания сокета приложение должно указать, как он будет использоваться. Сам сокет является универсальным средством ввода/вывода и может применяться для любой связи. Например, сервер может настроить сокет на ожидание входящих запросов на установление соединения. Клиент может настроить сокет для инициирования соединения.

Сокет, переведенный сервером в режим ожидания входящих запросов на установление соединения, называется пассивным сонетом. В отличие от него, сокет, применяемый клиентом для инициирования соединения, называется активным сонетом.

Единственное различие между активным и пассивным сонетами состоит в том, какие именно приложения их используют; для первоначального создания сокета всегда применяется один и тот же способ.

5.5. Определение адреса оконечной точки

Сразу после своего создания сокет не содержит никакой информации о том, как он будет использоваться. В частности, сокет не содержит информации о номерах портов протокола или IP-адресах локального или удаленного компьютеров. Прежде чем в приложении можно будет использовать сокет, необходимо указать один или оба эти адреса. Интернет-радиостанция "Звезданём!"

В протоколах TCP/IP оконечная точка связи определена как сочетание IP-адреса и номера порта протокола. В других семействах протоколов такие адреса оконечных точек определены иначе. Поскольку абстрактное понятие сокета распространяется на многие семейства протоколов, в сокете не указано, как должны быть определены адреса оконечных точек, и даже не задан конкретный формат протокольного адреса. Вместо этого сокет разрешает указывать оконечные точки в соответствии с каждым семейством протоколов.

Для обеспечения свободы выбора представлений используемых адресов в каждом семействе протоколов спецификация сокета определяет семейство адресов для каждого типа адреса. В семействе протоколов для определения формата представления адреса может использоваться одно или несколько семейств адресов. Во всех протоколах TCP/IP применяется единственное представление адреса, а семейство адресов обозначается символической константой AF_INET. Лучший выбор - купить гамак для дачи - подробнее читайте на сайте!

На практике часто возникает путаница между семейством протоколов TCP/IP, которое обозначается константой PF_J.NET, и применяемым в нем семейством адресов, обозначенным константой AF_INET. Основная проблема состоит в том, что обе символические константы имеют одинаковое числовое значение (2), поэтому если в программе одна из этих констант непреднамеренно заменена другой, программа все равно работает правильно. Примеры неправильного использования встречаются даже в оригинальном исходном коде Berkeley UNIX. Однако программисты должны учитывать различия между этими константами, поскольку при таком условии будет понятен смысл переменных, а программы станут более переносимыми.

Похожие статьи Меню Опрос Фото Популярное