PHP套接字UDP通信

时间:2012-03-27 23:09:11

标签: php sockets udp

服务器工作正常,但问题是客户端没有收到任何内容。

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);
 }
?>

1 个答案:

答案 0 :(得分:4)

stream_socket_sendto ( resource $socket , string $data [, int $flags = 0 [, string $address ]] )的语法错误,只需替换:

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

使用:

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

那么你的例子就可以了。