1

我在 Windows 7 Professional 上使用 XAMPP v3.2.1 和 PHP 5.5。一切都应该没问题,但是这段代码就是不想工作。

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

无论我做什么,都会抛出异常。我已经读过,对于 UNIX 套接字,我需要 IP 协议 (0),尽管我也尝试过 TCP 和 UDP。我尝试了 SOCK_DGRAM 而不是 SOCK_STREAM 到目前为止没有运气,我还尝试使用 php 5.4 版本重新安装 XAMPP - 仍然没有运气。我的选择已经用尽,所以我认为你可以帮助我......但是我认为 UNIX 套接字在 Windows 上不起作用,因为类似的代码在 *nix 环境中运行良好。

4

1 回答 1

2

Windows 没有实现 Unix 域套接字,因此您必须使用替代方案。最接近的等价物是命名管道,但我不知道从 PHP 中使用它们。一个可行的替代方案可能是绑定到环回接口的 TCP 套接字,尽管它们与端口号而不是文件名相关联。

于 2013-07-19T20:16:03.373 回答