How can one ensure a successful response when using socket_send() and socket_recv() in PHP?

Issue: To ensure a successful response when using socket_send() and socket_recv() in PHP, it is important to properly handle errors and check for the expected response length. Solution: To ensure a successful response, you should check for errors after sending and receiving data using socket_send() and socket_recv(). Additionally, make sure to specify the correct length of the expected response when using socket_recv() to avoid reading incomplete data.

// Create a socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Connect to the server
socket_connect($socket, '127.0.0.1', 8000);

// Send data to the server
$data = "Hello, server!";
socket_send($socket, $data, strlen($data), 0);

// Receive response from the server
$response = '';
while ($bytes = socket_recv($socket, $buffer, 1024, 0)) {
    $response .= $buffer;
    if ($bytes < 1024) {
        break;
    }
}

// Check for errors
if ($bytes === false) {
    echo "Error receiving data: " . socket_strerror(socket_last_error());
} else {
    echo "Response from server: " . $response;
}

// Close the socket
socket_close($socket);