0

phpワンプサーバーを使用してソケットを開こうとしています。ソケットを受け入れるようにファイルを編集しましたphp.iniが、機能しません。私のコードまたはワンプサーバーのインストールが原因ですか?

<?php
error_reporting(E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit(0);

/* Turn on implicit output flushing so we see what we're getting
 * as it comes in. */
ob_implicit_flush();

$address = '192.168.1.53';
$port = 10000;
echo 'Entering';
if ($sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname("tcp")) == false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) .                "\n";
}

if (socket_listen($sock, 5) === false) {
echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) .       "\n";
}

do {
if (($msgsock = socket_accept($sock)) === false) {
    echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock))        . "\n";
    break;
}
/* Send instructions. */
$msg = "\nWelcome to the PHP Test Server. \n" .
    "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
socket_write($msgsock, $msg, strlen($msg));

do {
    if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
        echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
        break 2;
    }
    if (!$buf = trim($buf)) {
        continue;
    }
    if ($buf == 'quit') {
        break;
    }
    if ($buf == 'shutdown') {
        socket_close($msgsock);
        break 2;
    }
    $talkback = "PHP: You said '$buf'.\n";
    socket_write($msgsock, $talkback, strlen($talkback));
    echo "$buf\n";
} while (true);
socket_close($msgsock);
} while (true);

socket_close($sock);
?>

wamp を使用してブラウザで実行すると、 undefined function が表示されますsocket_create

4

2 に答える 2

0

ソケットエクステンションをインストールする必要があります

http://www.php.net/manual/en/sockets.installation.php

そして、次の投稿を参照して ください https://stackoverflow.com/a/6137855/716865

于 2013-09-07T21:22:04.967 に答える
0

php_sockets 拡張機能を有効にしていますか? これを試してみてください。

<?php
if (!extension_loaded('sockets')) {
    die('The sockets extension is not loaded.');
}
?> 
于 2013-09-07T21:19:09.257 に答える