라이브러리

[PHP] socket_write - 소켓에 쓰기




소켓 (Socket) 이란?

소켓은 네트워크에서 데이터를 전송하기 위한 소프트웨어 구성 요소입니다. 소켓은 프로세스 간의 통신을 가능하게 하며, TCP/IP 프로토콜을 사용하여 데이터를 전송합니다.

PHP 에서 소켓 사용하기

PHP 에서 소켓을 사용하려면 `socket` 함수를 사용해야 합니다. `socket` 함수는 소켓을 생성하고 소켓에 데이터를 전송하는 데 사용됩니다.

소켓 생성하기


소켓을 생성하려면 `socket_create` 함수를 사용합니다. 이 함수는 소켓의 유형을 지정해야 하며, TCP/IP 소켓을 생성하려면 `SOCK_STREAM`을 사용합니다.

#hostingforum.kr
php

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);



소켓에 데이터 전송하기


소켓에 데이터를 전송하려면 `socket_write` 함수를 사용합니다. 이 함수는 소켓에 데이터를 전송하고, 전송된 데이터의 길이를 반환합니다.

#hostingforum.kr
php

$result = socket_write($sock, "Hello, World!", strlen("Hello, World!"));



소켓에 데이터 읽기


소켓에서 데이터를 읽으려면 `socket_read` 함수를 사용합니다. 이 함수는 소켓에서 데이터를 읽고, 읽은 데이터를 반환합니다.

#hostingforum.kr
php

$data = socket_read($sock, 1024);



소켓 종료하기


소켓을 종료하려면 `socket_close` 함수를 사용합니다. 이 함수는 소켓을 종료하고, 소켓의 자원을 해제합니다.

#hostingforum.kr
php

socket_close($sock);



예제


소켓을 사용하여 클라이언트와 서버를 연결하는 예제입니다.

# 서버


#hostingforum.kr
php

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

socket_bind($sock, 'localhost', 8080);

socket_listen($sock);



while (true) {

    $client_sock = socket_accept($sock);

    $data = socket_read($client_sock, 1024);

    echo "클라이언트가 보낸 데이터: $data
";

    socket_write($client_sock, "Hello, Client!", strlen("Hello, Client!"));

    socket_close($client_sock);

}



# 클라이언트


#hostingforum.kr
php

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

socket_connect($sock, 'localhost', 8080);

socket_write($sock, "Hello, Server!", strlen("Hello, Server!"));

$data = socket_read($sock, 1024);

echo "서버가 보낸 데이터: $data
";

socket_close($sock);



이 예제에서는 서버가 클라이언트의 데이터를 읽고, 클라이언트에게 데이터를 전송합니다. 클라이언트는 서버에게 데이터를 전송하고, 서버가 전송한 데이터를 읽습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 179 페이지

검색

게시물 검색