라이브러리

[PHP] SwooleServer::addlistener - 서버에 새로운 리스너를 추가합니다.




SwooleServer::addlistener


SwooleServer::addlistener는 SwooleServer 클래스의 메소드로, 서버에 새로운 리스너를 추가하는 메소드입니다. 리스너는 서버가 특정 포트나 소켓을 통해 클라이언트와 통신할 수 있도록 해주는 객체입니다.

# 사용법


SwooleServer::addlistener 메소드는 다음과 같은 형식으로 사용됩니다.

#hostingforum.kr
php

SwooleServer::addlistener($host, $port, $mode, $setting)



* `$host`: 리스너가 listens 할 호스트 이름 또는 IP 주소입니다.
* `$port`: 리스너가 listens 할 포트 번호입니다.
* `$mode`: 리스너의 모드입니다. 다음 중 하나를 선택할 수 있습니다.
+ `SWOOLE_SOCK_TCP`: TCP 소켓으로 listens 할 때 사용합니다.
+ `SWOOLE_SOCK_UDP`: UDP 소켓으로 listens 할 때 사용합니다.
+ `SWOOLE_SOCK_TCP6`: IPv6를 사용하는 TCP 소켓으로 listens 할 때 사용합니다.
+ `SWOOLE_SOCK_UDP6`: IPv6를 사용하는 UDP 소켓으로 listens 할 때 사용합니다.
* `$setting`: 리스너의 설정입니다. 다음 중 하나를 선택할 수 있습니다.
+ `SWOOLE_SOCK_LINGER`: 소켓이 closes 될 때, 데이터를 flush 할지 여부를 결정합니다.
+ `SWOOLE_SOCK_SNDBUF`: 소켓으로 데이터를 sends 할 때, 버퍼의 크기를 결정합니다.
+ `SWOOLE_SOCK_RCVBUF`: 소켓으로 데이터를 receives 할 때, 버퍼의 크기를 결정합니다.

# 예제


다음 예제는 SwooleServer::addlistener 메소드를 사용하여 TCP 소켓으로 listens 하는 서버를 만드는 방법을 보여줍니다.

#hostingforum.kr
php

use SwooleServer;



$server = new Server('127.0.0.1', 9501, SWOOLE_BASE);



$server->set([

    'worker_num' => 2,

    'max_request' => 1000,

]);



$server->on('start', function ($server) {

    echo "Server is started.
";

});



$server->on('connect', function ($server, $fd, $from_id) {

    echo "Client $fd connected.
";

});



$server->on('receive', function ($server, $fd, $from_id, $data) {

    echo "Client $fd received message: $data
";

    $server->send($fd, "Hello, client!
");

});



$server->on('close', function ($server, $fd, $from_id) {

    echo "Client $fd closed.
";

});



$server->on('workerStart', function ($server, $worker_id) {

    echo "Worker $worker_id started.
";

});



$server->addlistener('127.0.0.1', 9501, SWOOLE_SOCK_TCP);



$server->start();



이 예제에서는 SwooleServer::addlistener 메소드를 사용하여 TCP 소켓으로 listens 하는 서버를 만듭니다. 서버는 클라이언트가 연결을 시도할 때, 클라이언트와 통신을 하며, 클라이언트가 연결을 종료할 때, 클라이언트가 종료된 것을 알립니다.

# 참고


* SwooleServer::addlistener 메소드는 SwooleServer 클래스의 메소드입니다.
* 리스너는 서버가 특정 포트나 소켓을 통해 클라이언트와 통신할 수 있도록 해주는 객체입니다.
* `$mode` 파라미터는 리스너의 모드를 결정합니다.
* `$setting` 파라미터는 리스너의 설정을 결정합니다.
* `$host` 파라미터는 리스너가 listens 할 호스트 이름 또는 IP 주소입니다.
* `$port` 파라미터는 리스너가 listens 할 포트 번호입니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색