라이브러리
[PHP] stream_socket_server - 인터넷 또는 Unix 도메인 서버 소켓 생성
PHP Stream Socket Server
PHP Stream Socket Server는 TCP/IP 소켓을 사용하여 클라이언트와 통신하는 데 사용되는 PHP 함수입니다. 이 함수는 서버를 생성하고 클라이언트와 통신을 시작하는 데 사용됩니다.
Stream Socket Server 함수
`stream_socket_server()` 함수는 TCP/IP 소켓을 사용하여 서버를 생성하는 데 사용됩니다. 이 함수는 다음과 같은 형식을 가집니다.
#hostingforum.kr
php
stream_socket_server($local_socket, $errno, $errstr, $flags, $context)
- `$local_socket`: 서버를 생성할 소켓의 이름입니다.
- `$errno`: 오류 번호입니다.
- `$errstr`: 오류 메시지입니다.
- `$flags`: 옵션입니다. (예: `STREAM_SERVER_BIND`, `STREAM_SERVER_LISTEN`)
- `$context`: 컨텍스트입니다.
예제: Stream Socket Server
다음 예제는 Stream Socket Server를 사용하여 클라이언트와 통신하는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
// 서버를 생성할 소켓의 이름
$server = stream_socket_server('tcp://0.0.0.0:8080', $errno, $errstr);
if (!$server) {
echo "Error: $errstr ($errno)
";
} else {
echo "Server started on port 8080
";
// 클라이언트와 통신을 시작
while (true) {
$client = stream_socket_accept($server);
if (!$client) {
echo "Error: Unable to accept client
";
continue;
}
echo "Client connected
";
// 클라이언트와 통신
while (true) {
$data = fread($client, 1024);
if ($data === false) {
echo "Error: Unable to read from client
";
break;
}
echo "Received from client: $data
";
// 클라이언트에게 응답
fwrite($client, "Hello from server!
");
if (feof($client)) {
break;
}
}
// 클라이언트와 통신을 종료
fclose($client);
}
// 서버를 종료
fclose($server);
}
?>
이 예제에서는 TCP/IP 소켓을 사용하여 서버를 생성하고 클라이언트와 통신을 시작합니다. 클라이언트와 통신을 시작하면 클라이언트가 서버에게 데이터를 보낼 때마다 서버가 클라이언트에게 응답합니다. 클라이언트가 서버와 통신을 종료하면 서버도 클라이언트와 통신을 종료합니다.
예제: Stream Socket Client
다음 예제는 Stream Socket Client를 사용하여 서버와 통신하는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
// 서버와 통신할 소켓의 이름
$client = stream_socket_client('tcp://localhost:8080', $errno, $errstr);
if (!$client) {
echo "Error: $errstr ($errno)
";
} else {
echo "Connected to server on port 8080
";
// 서버에게 데이터를 보내기
fwrite($client, "Hello from client!
");
// 서버에게 응답을 받기
while (true) {
$data = fread($client, 1024);
if ($data === false) {
echo "Error: Unable to read from server
";
break;
}
echo "Received from server: $data
";
if (feof($client)) {
break;
}
}
// 서버와 통신을 종료
fclose($client);
}
?>
이 예제에서는 TCP/IP 소켓을 사용하여 서버와 통신하는 방법을 보여줍니다. 클라이언트는 서버에게 데이터를 보낼 때마다 서버가 클라이언트에게 응답합니다. 클라이언트가 서버와 통신을 종료하면 서버도 클라이언트와 통신을 종료합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.