Введение в сокет-программирование в PHP
Все языки программирования обеспечивают механизм реализации взаимодействия сервера и клиента. Согласно этому механизму приложение позволяет серверу и клиенту обмениваться данными между ними. Подобно другим языкам программирования, PHP также предоставляет нам этот механизм. Сокетное программирование может быть определено как подход программирования, в котором сервер и клиент используются в качестве приложения, в котором необходимо установить соединение между ними, чтобы облегчить связь между ними. С точки зрения PHP, это также позволяет нам реализовать концепцию программирования сокетов. В этой статье мы узнаем, как реализовать это сокетное программирование с использованием языка программирования PHP.
Методы класса сокетов
Методы класса сокетов - это специальные функции, которые позволяют нам реализовывать программирование сокетов. Программа, которая должна быть написана для обеспечения функциональности программирования сокетов, использует предопределенные функции сокетов. Эти функции состоят из операторов, которые выполняют реальную роль в программировании сокетов. Ниже приведены некоторые функции сокетов.
- Socket_accept: это одна из самых распространенных функций сокетов, которая используется для принятия соединения через сокет. Основная роль этой функции заключается в том, чтобы разрешить соединение при каждом обращении к запросу.
- Socket_addrinfo_bind: эта функция используется для добавления предоставленной информации в сокет. Принятая информация должна быть назначена сокету для облегчения ее реализации.
- Socket_clear_error: эта функция используется для очистки ошибки, которая находится в сокете. В дополнение к этому, эта функция также очищает ошибку в последнем коде.
- Socket_close: как следует из названия, эта функция используется для закрытия ресурса, который принадлежит сокету.
- Socket_connect: этот метод используется для создания сокетного соединения. При программировании сокетов программа начинается с установления соединения, которое можно выполнить с помощью этой функции.
- Socket_create: этот метод связан с созданием сокета. Сокет, созданный с помощью этого метода, работает как конечная точка соединения.
- Socket_create_listen: эта функция используется для открытия сокета указанного порта, который принимает соединение. Как следует из названия, это помогает в открытии сокета для прослушивания.
- Socket_create_pair: этот метод обычно используется в приложении, которое должно задействовать сложную часть программирования сокетов. Это помогает в создании неразличимых сокетов, и те сохранены в массиве.
- Socket_get_option: этот метод используется для получения параметров сокета. Сокет состоит из нескольких опций, которые должны использоваться в соответствии с приложением. Используя этот метод, мы можем получить все те опции, которые есть у сокета.
- Socket_getsockname: этот метод используется для запроса локальной области выбранного сокета и, в свою очередь, он может получить детали, связанные с хостом / портом или путем к файловой системе Unix. Какой бы результат он ни получил, он полностью зависит от типа.
Пример Socket Client
В этом разделе мы увидим код, который будет использоваться для реализации программирования сокетов на стороне клиента. Пример, упомянутый ниже, будет содержать данные о посте и хосте, которые будут использоваться для создания сокетного соединения. Как только соединение установлено, он обменивается некоторыми сообщениями и ожидает ответа от сервера.
<_?php$port_number = 1230;
$IPadress_host = "127.0.0.1";
$hello_msg= "This is server";
echo "Hitting the server :".$hello_msg;
$socket_creation = socket_create(AF_INET, SOCK_STREAM, 0) or die("Unable to create connection with socket\n");
$server_connect = socket_connect($socket_creation, $IPadress_host, $port_number) or die("Unable to create connection with server\n");
socket_write($socket_creation, $hello_msg, strlen($hello_msg)) or die("Unable to send data to the server\n");
$server_connect = socket_read ($socket_creation, 1024) or die("Unable to read response from the server\n");
echo "Message from the server :".$server_connect;
socket_close($socket_creation);
?>
В приведенном выше примере номер порта 1230, в котором программа пытается подключиться. IP-адрес хоста будет IP-адресом локального хоста. Если кто-то желает взаимодействовать с удаленным сервером, он может указать IP-адрес сервера. Затем сообщение будет отправлено на сервер, который будет показан на странице ответа. Создание сокета будет обработано позже. В этой программе есть правильный механизм для обработки ошибки с использованием метода die. Если что-то пошло не так в этом случае, метод die будет отменен, и появится сообщение, приведенное в нем.
Пример сокет-сервера
Пример, подробно описанный в этом разделе, будет содержать коды PHP, которые будут использованы для реализации программирования сокетов на стороне сервера. Детали IP и номера порта, использованного в последнем примере, останутся такими же в этом примере. Основным отличием в этом примере будет основное отличие, которое отделяет его от языка программирования сокетов на стороне клиента. Позволяет процессу понять код PHP для программирования сокетов на стороне сервера.
<_?php$port_number = 1230;
$IPadress_host = "127.0.0.1";
set_time_limit(0);
$socket_creation = socket_create(AF_INET, SOCK_STREAM, 0) or die("Unable to create socket\n");$socket_outcome = socket_bind($socket_creation, $IPadress_host, $port_number ) or die("Unable to bind to socket\n");
$socket_outcome = socket_listen($socket_creation, 3) or die("Unable to set up socket listener\n");
$socketAccept = socket_accept($socket_creation) or die("Unable to accept incoming connection\n");
$data = socket_read($socketAccept, 1024) or die("Unable to read input\n");
$data = trim($data);
echo "Client Message : ".$data;
$outcome = strrev($data) . "\n";
socket_write($socketAccept, $outcome, strlen ($outcome)) or die("Unable to write output\n");
socket_close($socketAccept);
socket_close($socket_creation);
?>
В приведенном выше примере программа была разработана для работы на локальном хосте. Упомянутый здесь IP-адрес принадлежит локальному узлу, и номер порта может использовать службу TCP и UDP на этом. Первым шагом всегда является создание сокета, так как он будет использоваться в программе. Позже сокет был связан с указанными значениями, которые помогут в работе. Методы, используемые в этой программе, имеют предопределенное значение, которое можно использовать для определенной цели. Как только все пойдет хорошо, программа будет работать соответственно и в конце концов закроет сокетное соединение.
Вывод - Socket Программирование на PHP
Язык программирования сокетов используется для работы приложения на сервере и модели клиента. Такой подход программирования позволяет нам установить связь между сервером и клиентом, чтобы облегчить обмен данными. Чтобы сделать программирование сокетов простым и удобным, PHP предоставил предопределенные методы, где для всех методов назначены уникальные задачи.
Рекомендуемые статьи
Это руководство по программированию сокетов в PHP. Здесь мы обсуждаем методы, которые позволяют нам реализовывать программирование сокетов, и как он позволяет серверу и клиенту обмениваться данными между ними. Вы также можете посмотреть другие наши статьи, чтобы узнать больше -
- Введение в инкапсуляцию в PHP
- Конструктор в PHP | Типы конструктора
- Что такое переопределение в PHP?
- Магические константы PHP
- PHP рекурсивная функция
- Примеры строковых функций PHP
- Руководство по программированию сокетов в Java