PHP로 소켓 통신을 시도해 봤습니다.

4599 단어 PHPSocket 통신
시도하는 이유
WebSocket을 작업하는 것 같아요.
원래부터 소켓 통신을 접해본 적이 없어서 PHP로 시도해봤어요.
운영 환경
터미널 1: 시작socketSample.php 사전listen127.0.0.1:8080.
터미널 2:telnet와 터미널 1을 연결합니다.
전체 프로세스
이것은 이번에 제작한 샘플의 전체적인 절차다.
sample.png
샘플 코드
간소화를 위해 오류 처리를 생략했다.
socketSample.php
<?php

$address = '127.0.0.1';
$port = 8000;

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //※1
socket_bind($sock, $address, $port); //※2
socket_listen($sock, 5); // ※3

$msgsock = socket_accept($sock); // ※5

do {
    $buf = socket_read($msgsock, 2048, PHP_NORMAL_READ); // ※6
    if (!$buf = trim($buf)) {
        continue;
    }
    $talkback = "PHP: You said '$buf'.\n";
    socket_write($msgsock, $talkback, strlen($talkback)); // ※7
    break;

} while (true);
socket_close($msgsock); // ※8

socket_close($sock); // ※9
?>
끝말
평소 애플리케이션 층의 HTTP만 접하다 보니 소켓 통신을 배우는 게 좋은 공부라고 생각한다.
참고 자료
  • https://www.php.net/manual/ja/ref.sockets.php
  • https://php.plus-server.net/sockets.examples.html
  • 좋은 웹페이지 즐겨찾기