1

Windows 7 ProfessionalでPHP 5.5でXAMPP v3.2.1を使用しています。すべて問題ないはずですが、このコードは機能しません。

protected function _get_socket()
{
    if (($sock = @socket_create(AF_UNIX, SOCK_STREAM, 0)) === FALSE) {
        throw new VlaChatSe('socket_create', socket_last_error());
    }
    return $sock;
}

私が何をしても、例外がスローされます。TCPとUDPも試しましたが、UNIXソケットにはIPプロトコル(0)が必要であることを読みました。SOCK_STREAM の代わりに SOCK_DGRAM を試してみましたが、これまでのところうまくいきませんでした。PHP 5.4 バージョンで XAMPP を再インストールしようとしましたが、まだ運がありません。私の選択肢が尽きたので、あなたが私を助けることができると思った...しかし、同様のコードが* nix環境でうまくいったので、UNIXソケットはWindowsでは動かないと思います。

4

1 に答える 1

2

Windows は Unix ドメイン ソケットを実装していないため、別の方法を使用する必要があります。最も近いものは名前付きパイプですが、PHP からそれらを使用する方法がわかりません。実行可能な代替手段は、ファイル名ではなくポート番号に関連付けられていますが、ループバック インターフェイスにバインドされた TCP ソケットである可能性があります。

于 2013-07-19T20:16:03.373 に答える