
SwooleServer::sendwait 메소드는 클라이언트로 데이터를 전송한 후에 클라이언트가 데이터를 받을 때까지 대기하는 메소드입니다. 이 메소드의 반환값은 클라이언트가 데이터를 받은 후에 클라이언트가 서버에 다시 보낸 데이터의 크기를 나타냅니다.
예를 들어, 클라이언트가 데이터를 받았을 때, 클라이언트는 데이터의 크기를 포함하여 4바이트의 데이터를 서버로 보낸다. 이 때, sendwait 메소드의 반환값은 4가 됩니다.
반환값이 0이면, 클라이언트가 데이터를 받지 못한 경우입니다.
예시:
#hostingforum.kr
php
class MyServer extends SwooleServer
{
public function onReceive($fd, $fromId, $data)
{
$this->sendwait($fd, 'Hello, World!', 3);
$data = $this->recv($fd, 4);
if ($data) {
$dataLength = $data[0] . $data[1] << 8 | $data[2] << 16 | $data[3] << 24;
echo "Client received data with length: " . $dataLength;
} else {
echo "Client did not receive data."
}
}
}
이 예시에서, sendwait 메소드의 반환값은 클라이언트가 데이터를 받은 후에 클라이언트가 서버에 다시 보낸 데이터의 크기입니다.
2025-05-08 01:05