개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.13 18:53

SwooleClient::pipe 사용 시 데이터 전송 관련 질문

목록
  • 몽고DB러버 2일 전 2025.04.13 18:53
  • 36
    1
제가 SwooleClient::pipe를 사용하여 클라이언트간에 데이터를 전송하려고 하는데,

클라이언트에서 pipe로 데이터를 전송했을 때,

서버가 데이터를 받을 수 있는지 궁금합니다.

클라이언트에서 pipe로 데이터를 전송하는 코드는 다음과 같습니다.

php

$client = new SwooleClient(SWOOLE_SOCK_TCP);

$client->connect('127.0.0.1', 9501);

$client->pipe($pipe);

$client->send('Hello, Server!');



이러한 코드에서 pipe로 데이터를 전송했을 때,

서버에서 데이터를 받을 수 있는 방법을 알려주세요.

서버의 코드는 다음과 같습니다.

php

$server = new SwooleServer('127.0.0.1', 9501);

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

    echo "Client: Connect.n";

});

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

    echo "Server: Receive data: $datan";

});

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

    echo "Client: Close.n";

});

$server->start();



위 코드에서 pipe로 데이터를 전송했을 때,

서버가 데이터를 받을 수 있는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    SwooleClient::pipe를 사용하여 클라이언트 간에 데이터를 전송하는 경우, 서버는 데이터를 받을 수 있습니다.

    클라이언트에서 pipe로 데이터를 전송하는 코드는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $client = new SwooleClient(SWOOLE_SOCK_TCP);
    
    $client->connect('127.0.0.1', 9501);
    
    $pipe = $client->getPipe();
    
    $client->send('Hello, Server!');
    
    


    서버에서 데이터를 받을 수 있는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $server = new SwooleServer('127.0.0.1', 9501);
    
    $server->on('Connect', function ($server, $fd) {
    
        echo "Client: Connect.n";
    
    });
    
    
    
    $server->on('PipeMessage', function ($server, $fd, $data) {
    
        echo "Server: Receive data: $datan";
    
    });
    
    
    
    $server->on('Close', function ($server, $fd) {
    
        echo "Client: Close.n";
    
    });
    
    
    
    $server->start();
    
    


    위 코드에서 pipe로 데이터를 전송했을 때, 서버는 데이터를 받을 수 있습니다.

    Swoole 4.x 버전부터는 'PipeMessage' 이벤트가 추가되어 pipe로 데이터를 전송할 때, 서버에서 데이터를 받을 수 있습니다.

    이벤트 핸들러에서 $data 변수에 클라이언트에서 전송한 데이터가 저장되어 있습니다.

    이러한 코드를 사용하면 클라이언트 간에 데이터를 전송할 수 있습니다.

    2025-04-13 18:54

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 11,676건 / 3 페이지

검색

게시물 검색