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_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. Вообще я планирую написать ещё несколько статей в ближайшее время по этой теме, а в этой статье я расскажу о том,
Сокет — это интерфейс взаимодействия клиента и сервера. Интерфейс — это, в свою очередь, правило, по которым происходит общение между клиентом и сервером. Чтобы стало понятнее, приведу пример из обычной жизни. Например, люди общаются с помощью слов на конкретном языке. Это наш с Вами интерфейс. В зависимости от входящих слов мы формируем образ у себя в голове, и отдаём ответ, в виде опять же слов. Другой пример, дельфины общаются в ультразвуком спектре, и это их интерфейс.
Надеюсь, про интерфейс теперь понятно, это правило взаимодействия. Теперь про клиента.
Кратко резюмирую, что же такое сокет: есть клиент, есть сервер, есть правила взаимодействия (интерфейс), клиент, согласно этим правилам, посылает запрос, а сервер данный запрос принимает и, согласно тем же правилам, даёт ответ.
Как видите, всё совсем не сложно. Очень здорово то, что клиент и сервер могут быть написаны на совсем разных языках программирования и могут находиться друг от друга за тысячи километров. Мы же с Вами будет писать и клиент, и сервер в будущих статьях на языке
- Создано 13.01.2012 14:01:12
- Михаил Русаков
Предыдущая статьяСледующая статья
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
<a href=»https://myrusakov.ru» target=»_blank»><img src=»https://myrusakov.ru/images/button.gif» alt=»Как создать свой сайт» /></a> - Текстовая ссылка:
<a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a>Она выглядит вот так: Как создать свой сайт
- 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
+ добавить примечание
Пользовательские заметки
Для этой страницы нет пользовательских заметок.
Ресурсы расширения 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
.