<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/transports.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'transports.inet.php',
    1 => 'Сокеты интернет-домена: TCP, UDP, SSL и TLS',
    2 => 'Сокеты интернет-домена: TCP, UDP, SSL и TLS',
  ),
  'up' => 
  array (
    0 => 'transports.php',
    1 => 'Список транспортов для работы с сокетами',
  ),
  'prev' => 
  array (
    0 => 'transports.php',
    1 => 'Список транспортов для работы с сокетами',
  ),
  'next' => 
  array (
    0 => 'transports.unix.php',
    1 => 'Сокеты Unix-домена: UNIX и UDG',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'appendices/transports.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="transports.inet" class="section">
  <h2 class="title">Сокеты интернет-домена: TCP, UDP, SSL и TLS</h2>
  <p class="simpara">
   Транспорты для сокетов интернет-домена: <code class="literal">ssl://</code>, <code class="literal">tls://</code>,
   <code class="literal">sslv2://</code> и <code class="literal">sslv3://</code>.
  </p>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <span class="simpara">
    Транспорты <code class="literal">sslv2://</code> и <code class="literal">sslv3://</code>
    устарели. Документацию к этим транспортам сохранили
    только в целях обратной совместимости.
   </span>
  </p></blockquote>

  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <span class="simpara">
    Функции автоматически выберут транспорт <code class="literal">tcp://</code>, если другой не указали.
   </span>
  </p></blockquote>

  <ul class="itemizedlist">
   <li class="listitem"><span class="simpara"><code class="literal">127.0.0.1</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">fe80::1</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">www.example.com</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">tcp://127.0.0.1</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">tcp://fe80::1</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">tcp://www.example.com</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">udp://www.example.com</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">ssl://www.example.com</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">tls://www.example.com</code></span></li>
  </ul>

  <p class="simpara">
   Наряду с целевым адресом сокеты интернет-домена ожидают номер порта.
   При работе с функцией <span class="function"><a href="function.fsockopen.php" class="function">fsockopen()</a></span> порт указывается вторым параметром
   и поэтому не влияет на формирование URL-адреса транспорта. При работе
   с функцией <span class="function"><a href="function.stream-socket-client.php" class="function">stream_socket_client()</a></span> и другими функциями для работы с потоками,
   как и при работе с традиционными URL-адресами, номер порта указывается как суффикс —
   через двоеточие в конце транспортного URL-адреса.
  </p>

  <ul class="itemizedlist">
   <li class="listitem"><span class="simpara"><code class="literal">tcp://127.0.0.1:80</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">tcp://[fe80::1]:80</code></span></li>
   <li class="listitem"><span class="simpara"><code class="literal">tcp://www.example.com:80</code></span></li>
  </ul>

  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <strong>Числовые IPv6-адреса с номерами портов</strong><br />
   <span class="simpara">
    Хотя во втором примере IPv4-адреса и имя хоста
    не изменились, за исключением добавления номера порта после
    двоеточия, IPv6-адрес обрамили квадратными скобками:
    <code class="literal">[fe80::1]</code>. Квадратные скобки помогают отличать
    двоеточия в IPv6-адресе и двоеточие, которое отделяет номер порта.
   </span>
  </p></blockquote>

  <p class="simpara">
   Транспорты <code class="literal">ssl://</code> и <code class="literal">tls://</code>,
   которые доступны, только если PHP скомпилировали с поддержкой модуля openssl, —
   расширяют транспорт <code class="literal">tcp://</code> для включения SSL-шифрования.
  </p>

  <p class="simpara">
   Транспорт <code class="literal">ssl://</code> попытается согласовать безопасное SSL/TLS-соединение
   на основе протоколов и алгоритмов шифрования, доступных клиенту и удалённому хосту.
   Конкретные протоколы определяются
   конфигурацией библиотеки OpenSSL и параметрами
   функции <span class="function"><a href="function.stream-context-create.php" class="function">stream_context_create()</a></span>
   наподобие опции <code class="literal">ssl.crypto_method</code>.
  </p>

  <p class="simpara">
   Протоколы SSLv2 и SSLv3 устарели и небезопасны.
   Разработчики PHP и библиотеки OpenSSL больше не включают поддержку этих версий
   по умолчанию и настоятельно не рекомендуют обмениваться данным по устаревшим протоколам.
  </p>
 </div><?php manual_footer($setup); ?>