Ghedeon
Ghedeon

Reputation: 1673

PHP socket UDP communication

Server works fine, but the problem is the client doesn't receive anything.

server.php

<?php    
 $buf_size = 1024;
 $socket = stream_socket_server("udp://127.0.0.1:3127", $errno, $errstr, STREAM_SERVER_BIND);
 do {
   $str = stream_socket_recvfrom($socket, $buf_size, 0, $peer); 
   $str = "abc";
   stream_socket_sendto($socket, $str, strlen($str), 0, $peer);    
 } while (true);
?>

client.php

<?php
 $fp = stream_socket_client("udp://127.0.0.1:3127", $errno, $errstr);
 if (!$fp) {
    echo "$errno - $errstr<br />\n";
 } else {      
    fwrite($fp, "1 2 3");    
    echo fread($fp, 15);
    fclose($fp);
 }
?>

Upvotes: 2

Views: 4904

Answers (1)

stewe
stewe

Reputation: 42632

Your syntax for stream_socket_sendto ( resource $socket , string $data [, int $flags = 0 [, string $address ]] ) is wrong, just replace:

stream_socket_sendto($socket, $str, strlen($str), 0, $peer);

with:

stream_socket_sendto($socket, $str, 0, $peer);

then your example works.

Upvotes: 4

Related Questions