0

ここにphpコードがあります

    <?php

$hostname = "127.0.0.1";
$portno = "5060";

$sock = socket_create(AF_INET, SOCK_STREAM, 0) or die("Socket create error\n");
socket_bind($sock, $hostname, $portno) or die("Socket bind error\n");
socket_listen($sock, 3) or die("Could not set up socket listener\n");

while(1)
{
    echo "socket connection started\n";
    $accept = socket_accept($sock) or die("Could not accept incoming connection\n");
    while($recv = socket_read($accept, 24000))
    {
        $sent = socket_write($sock, $recv, strlen($recv));
        echo $recv;
    }
    socket_close($accept);
    echo "socket connection done\n";
}

socket_close($sock);
?>

それはTCPサーバーとして機能します。それをudpサーバーに変換するために、サーバーの作成で行を変更しました

$sock = socket_create(AF_INET, SOCK_DGRAM, 0) or die("Socket create error\n");

しかし、それはエラーを示しています

Could not set up socket listener

耳を傾けようとしている間。

4

2 に答える 2

1

socket_listenUDPで使用できるとは思いません。マニュアルから:

socket_listen()は、タイプSOCK_STREAMまたはSOCK_SEQPACKETのソケットにのみ適用できます。

于 2013-02-28T15:21:13.547 に答える
0

socket_listen() は必要ありません。

使用するsocket_recvfrom()

http://php.net/manual/en/function.socket-recvfrom.php

于 2013-02-28T15:25:11.253 に答える