Програмування сокетів на PHP - Метод різних класів із прикладами

Зміст:

Anonim

Вступ до програмування сокетів на PHP

Усі мови програмування забезпечують механізм реалізації зв'язку між сервером та клієнтом. Відповідно до цього механізму програма дозволяє серверу та клієнту обмінюватися даними між ними. Подібно до інших мов програмування, PHP також надає нам цей механізм. Програмування сокетів можна визначити як підхід програмування, який має сервер і клієнт як додаток, коли між ними обох має бути встановлено з'єднання, щоб полегшити зв'язок між ними. Щодо PHP, це також дозволяє нам реалізувати концепцію програмування сокетів. У цій статті ми дізнаємось, як реалізувати це програмування сокетів за допомогою мови програмування PHP.

Методи класу розетки

Методи класу socket - це спеціальні функції, які дозволяють нам реалізувати програмування socket. Програма, яка повинна бути написана для приведення функціональних можливостей програмування сокет, використовує заздалегідь задані функції сокета. Ці функції складаються з тверджень, які виконують фактичну роль у програмуванні сокетів. Нижче наведено деякі функції розетки.

  • Socket_accept: Це одна з найпоширеніших функцій сокета, яка використовується для прийняття з'єднання в сокет. Основна роль цієї функції полягає в тому, щоб з'єднання було прийнято, коли запит потрапляє.
  • Socket_addrinfo_bind: Ця функція використовується для додавання наданої інформації в сокет. Прийнята інформація повинна бути призначена розетці для полегшення її реалізації.
  • Socket_clear_error: Ця функція використовується для очищення помилки, що є в сокеті. На додаток до цього, ця функція також очищає помилку в останньому коді.
  • Socket_close: Як зазначено в назві, ця функція використовується для закриття ресурсу, що належить до сокета.
  • Socket_connect: Цей метод використовується для створення з'єднання з сокетом. У програмуванні розетки програма починається з встановлення з'єднання, яке можна здійснити за допомогою цієї функції.
  • Socket_create: Цей метод стосується створення сокета. Розетка, створена цим методом, працює як кінцева точка з'єднання.
  • Socket_create_listen: Ця функція використовується для відкриття сокета вказаного порту, який приймає з'єднання. Як зазначається в назві, це допомагає відкрити розетку для прослуховування.
  • Socket_create_pair: Цей метод зазвичай використовується в додатку, який повинен принести у використання складну частину програмування socket. Це допомагає створити нерозрізні розетки, які зберігаються в масиві.
  • Socket_get_option: Цей метод використовується для отримання параметрів для сокета. Розетка складається з декількох варіантів, які необхідно використовувати відповідно до програми. Використовуючи цей метод, ми можемо отримати всі ті варіанти, які має сокет.
  • Socket_getsockname: Цей метод використовується для запиту локальної області обраного сокета, а взамін він може отримати деталі, пов'язані з хостом / портом або шляхом файлової системи Unix. Який би результат не був, повністю залежить від типу.

Приклад клієнта сокета

У цьому розділі ми побачимо код, який буде використовуватися для реалізації програмування сокетів на стороні клієнта. Наведений нижче приклад матиме інформацію про пост та дані про хости, які будуть використані для створення з'єднання з сокетом. Одне з них встановлено, воно обмінюється деякими повідомленнями та очікує відповіді від сервера.

<_?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 буде скасовано, і повідомлення, що подаються в ньому, з'являється.

Приклад Socket Server

Приклад, детально описаний у цьому розділі, матиме 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);
?>

У наведеному вище прикладі програма була розроблена для роботи в localhost. IP-адреса, згадана тут, належить localhost і номер порту може запускати послугу TCP та UDP на цьому. Початковий крок - це завжди створення сокета, оскільки він буде використовуватися у всій програмі. Пізніше розетка була пов'язана із заданими значеннями, які допоможуть функціонувати. Методи, що використовуються в цій програмі, мають заздалегідь визначене значення, яке можна використовувати для конкретної мети. Після того, як все пройде добре, програма запрацює відповідно і в кінцевому підсумку закриє з'єднання з сокетом.

Висновок - Програмування сокетів на PHP

Мова програмування сокет використовується для того, щоб програма працювала на сервері та клієнтській моделі. Такий підхід програмування дозволяє встановити зв’язок між сервером і клієнтом, щоб обмін даними міг полегшитись. Щоб зробити програмування сокетів простим і зручним, PHP запропонував заздалегідь визначені методи, де всі методи мають деякі унікальні завдання, призначені їм.

Рекомендовані статті

Це посібник із програмування Socket у PHP. Тут ми обговорюємо методи, які дозволяють нам реалізувати програмування сокетів, і як це дозволяє серверу та клієнту обмінюватися даними між ними. Ви також можете переглянути наші інші пов’язані статті, щоб дізнатися більше -

  1. Вступ до інкапсуляції в PHP
  2. Конструктор в PHP | Типи конструктора
  3. Що переважає в PHP?
  4. PHP магічні константи
  5. Рекурсивна функція PHP
  6. Приклади функцій струн PHP
  7. Посібник з програмування сокетів на Java