PHP: Сокеты — Manual

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • Ошибки сокетов
  • Функции сокета
    • socket_accept — Принимает соединение на сокете
    • socket_addrinfo_bind — Создать и привязать к сокету из указанного addrinfo
    • socket_addrinfo_connect — Создать и подключиться к сокету из указанного addrinfo
    • socket_addrinfo_explain — Получить информацию о addrinfo
    • socket_addrinfo_lookup — Получить массив с содержимым getaddrinfo про указанное имя хоста
    • socket_bind — Привязывает имя к сокету
    • socket_clear_error — Очищает ошибку на сокете или последний код ошибки
    • socket_close — Закрывает экземпляр Socket
    • socket_cmsg_space — Вычислить размер буфера сообщения
    • socket_connect — Начинает соединение с сокетом
    • socket_create_listen — Открывает сокет на указанном порту для принятия соединений
    • socket_create_pair — Создаёт пару неразличимых сокетов и сохраняет их в массиве
    • socket_create — Создаёт сокет (конечную точку для обмена информацией)
    • socket_export_stream — Экспортировать сокет в поток, инкапсулирующий сокет
    • socket_get_option — Получает опции потока для сокета
    • socket_getopt — Псевдоним socket_get_option
    • socket_getpeername — Запрашивает удалённую сторону указанного сокета, в результате может быть возвращён хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
    • socket_getsockname — Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
    • socket_import_stream — Импортировать поток
    • socket_last_error — Возвращает последнюю ошибку на сокете
    • socket_listen — Прослушивает входящие соединения на сокете
    • socket_read — Читает строку максимальную длину байт из сокета
    • socket_recv — Получает данные из подсоединённого сокета
    • socket_recvfrom — Получает данные из сокета, независимо от того, подсоединён он или нет
    • socket_recvmsg — Прочитать сообщение
    • socket_select — Запускает системный вызов select() для заданных массивов сокетов с указанным временем ожидания
    • socket_send — Отправляет данные в подсоединённый сокет
    • socket_sendmsg — Отправить сообщение
    • socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
    • socket_set_block — Устанавливает блокирующий режим на сокете
    • socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd
    • socket_set_option — Устанавливает опции для сокета
    • socket_setopt — Псевдоним socket_set_option
    • socket_shutdown — Завершает работу сокета на получение и/или отправку данных
    • socket_strerror — Возвращает строку, описывающую ошибку сокета
    • socket_write — Запись в сокет
    • socket_wsaprotocol_info_export — Экспорт структуры WSAPROTOCOL_INFO
    • socket_wsaprotocol_info_import — Импортирует сокет из другого процесса
    • socket_wsaprotocol_info_release — Высвобождает экспортированную структуру WSAPROTOCOL_INFO
  • Socket — Класс Socket
  • AddressInfo — Класс AddressInfo

add a note

User Contributed Notes

There are no user contributed notes for this page.

Что такое сокет в PHP

Основы Unreal Engine 5

Пройдя курс:

— Вы получите необходимую базу по Unreal Engine 5

— Вы познакомитесь с множеством инструментов в движке

— Вы научитесь создавать несложные игры

Общая продолжительность курса 4 часа, плюс множество упражнений и поддержка!

Чтобы получить Видеокурс,
заполните форму

E-mail:
Имя:

Другие курсы

Как создать профессиональный Интернет-магазин

После семинара:

— Вы будете знать, как создать Интернет-магазин.

— Вы получите бесплатный подарок с подробным описанием каждого шага.

— Вы сможете уже приступить к созданию Интернет-магазина.

Записаться

Другие курсы

Не тот беден, кто мало имеет, а тот, кто хочет многого.

Сенека

Не так давно меня попросили рассказать про сокеты на PHP. Вообще я планирую написать ещё несколько статей в ближайшее время по этой теме, а в этой статье я расскажу о том,

что такое сокеты в PHP. Чтобы Вы уже могли понять, нужны они Вам или нет.

Сокет — это интерфейс взаимодействия клиента и сервера. Интерфейс — это, в свою очередь, правило, по которым происходит общение между клиентом и сервером. Чтобы стало понятнее, приведу пример из обычной жизни. Например, люди общаются с помощью слов на конкретном языке. Это наш с Вами интерфейс. В зависимости от входящих слов мы формируем образ у себя в голове, и отдаём ответ, в виде опять же слов. Другой пример, дельфины общаются в ультразвуком спектре, и это их интерфейс.

Надеюсь, про интерфейс теперь понятно, это правило взаимодействия. Теперь про клиента.

Клиентом может выступать как человек, формирующий определённые запросы к серверу, так и программа, написанная на любом языке программирования, способном обмениваться данными с удалённым сервером. Сервер — это машина, ждущая подключения клиентов, принимающая от них запросы, и в зависимости от запросов, возвращающая ответ.

Кратко резюмирую, что же такое сокет: есть клиент, есть сервер, есть правила взаимодействия (интерфейс), клиент, согласно этим правилам, посылает запрос, а сервер данный запрос принимает и, согласно тем же правилам, даёт ответ.

Как видите, всё совсем не сложно. Очень здорово то, что клиент и сервер могут быть написаны на совсем разных языках программирования и могут находиться друг от друга за тысячи километров. Мы же с Вами будет писать и клиент, и сервер в будущих статьях на языке

PHP.

  • Создано 13.01.2012 14:01:12
  • Михаил Русаков

Предыдущая статьяСледующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    <a href=»https://myrusakov.ru» target=»_blank»><img src=»https://myrusakov.ru/images/button.gif» alt=»Как создать свой сайт» /></a>

    Она выглядит вот так:

  2. Текстовая ссылка:
    <a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
    [URL=»https://myrusakov.ru»]Как создать свой сайт[/URL]

PHP: Сокеты — Руководство

  • ВВЕДЕНИЕ
  • Установка/Настройка
    • Требования
    • Установка
    • Конфигурация среды выполнения
    • Типы ресурсов
  • Предварительные константы
  • Примеры
  • Socket Errors
  • .
  • socket_addrinfo_bind — Создать и привязать к сокету из заданного адреса
  • socket_addrinfo_connect — Создать и подключиться к сокету из заданного адреса
  • socket_addrinfo_explain — Получить информацию о addrinfo
  • socket_addrinfo_lookup — Получить массив с содержимым getaddrinfo о заданном имени хоста
  • socket_bind — Привязать имя к сокету — Закрывает экземпляр Socket
  • socket_cmsg_space — Вычисляет размер буфера сообщений
  • socket_connect — Инициирует соединение на сокете
  • socket_create_listen — Открывает сокет на порту для приема соединений
  • socket_create_pair — создает пару неразличимых сокетов и сохраняет их в массиве
  • socket_create — создает сокет (конечная точка для связи) the socket
  • socket_getopt — Псевдоним socket_get_option
  • socket_getpeername — Запрашивает удаленную сторону данного сокета, что может привести либо к host/port, либо к пути файловой системы Unix, в зависимости от его типа
  • socket_getsockname — Запрашивает локальную сторону данного сокета, что может привести либо к хосту/порту, либо к пути файловой системы Unix, в зависимости от его типа
  • socket_import_stream — Импорт потока
  • socket_last_error — Возвращает последнюю ошибку на сокете
  • socket_listen — прослушивает соединение на сокете
  • socket_read — считывает максимальную длину байтов из сокета
  • socket_recv — получает данные из подключенного сокета
  • socket_recvfrom — получает данные из сокета независимо от того, ориентирован он на соединение или нет
  • socket_recvmsg — Прочитать сообщение
  • socket_select — Выполнить системный вызов select() для заданных массивов сокетов с заданным тайм-аутом
  • socket_send — Послать данные в подключенный сокет сообщение сокету, независимо от того, подключен он или нет
  • socket_set_block — устанавливает режим блокировки для сокета
  • socket_set_nonblock — устанавливает неблокирующий режим для файлового дескриптора fd
  • socket_set_option — Устанавливает параметры сокета для сокета
  • socket_setopt — Псевдоним socket_set_option
  • socket_shutdown — Закрывает сокет для получения, отправки или обоих
  • socket_strerror — Возвращает строку, описывающую ошибку сокета
  • socket_write — Запись в сокет
  • socket_wsaprotocol_info_export — экспортирует структуру WSAPROTOCOL_INFO
  • socket_wsaprotocol_info_import — импортирует сокет из другого процесса
  • socket_wsaprotocol_info_release — освобождает экспортированную структуру WSAPROTOCOL_INFO
  • Socket — класс Socket
  • AddressInfo — класс AddressInfo
  • + добавить примечание

    Пользовательские заметки

    Для этой страницы нет пользовательских заметок.

    Ресурсы расширения Sockets («Socket» и «AddressInfo») являются объектами класса

    В PHP 8.0 и более поздних версиях все функции из расширения Sockets возвращают/принимают объекты типа \Socket и \AddressInfo класса вместо ресурс типа Socket и AddressInfo .

    Это похоже на расширение Curl, использующее объекты \CurlHandle , в отличие от ресурса в PHP 8.0, и расширение GD, использующее объекты \GdImage , а не ресурсы gd .

    Обратите внимание, что это относится только к функциям socket_*() из ext/sockets . stream_socket_* функции (которые возвращают поток ресурсов) затронуты , а не .

     конечный класс Socket{
    } 

    \Socket объекты класса заменяют возвращаемые значения функций, которые ранее возвращали ресурс типа Socket :

    • socket_accept()
    • socket_addrinfo_bind()
    • socket_addrinfo_connect()
    • socket_create()
    • socket_create_listen()
    • socket_import_stream()
    • socket_wsaprotocol_info_import()

    Ресурсы сокета можно закрыть с помощью функции socket_close() , которая также необходима в PHP 8. 0 для быстрого закрытия открытого сокета.

     окончательный класс AddressInfo {
    } 

    Массив объектов класса \AddressInfo будет возвращен функцией socket_addrinfo_lookup() , которая ранее возвращала массив из AddressInfo ресурсов.

    \Socket и \AddressInfo семантика класса
    • Оба класса объявлены в глобальном пространстве имен.
    • Объявлен окончательным .
    • Не имеет методов.
    • Невозможно создать экземпляр с new \Socket() и new AddressInfo() .
    • Невозможно сериализовать.
    • Невозможно клонировать.

    Попытка создания экземпляра \Socket объект выдаст фатальную ошибку:

     Ошибка PHP: Невозможно напрямую построить Socket, вместо этого используйте socket_create() в ... в строке ... 

    socket_*() параметры и возвращаемые значения

    Все функции из сокетов extension вернет/примет новые объекты класса \Socket и \AddressInfo .