我在C ++中编写了一个简单的套接字服务器,我将用它来在其他几个守护进程之间进行通信。服务器本身很好;它正在侦听端口3000上的TCP连接。netstat
显示以下内容:
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 *.30000 *.* LISTEN
但是,在PHP中,如果我使用以下几行简单的代码:
$sock = socket_create(AF_UNIX, SOCK_STREAM, 0);
socket_connect($sock, '127.0.0.1', 30000);
我得到以下内容:
Warning: socket_connect() [function.socket-connect]: unable to connect [2]:
No such file or directory in /foo/bar/baz.php on line 8
这是用于IPC套接字的正确协议(0
)吗?我可能忽略了一些愚蠢的事情 - 任何想法都会受到赞赏。
答案 0 :(得分:2)
将AF_UNIX
替换为AF_INET
(或PF_INET
- 请参阅Protocol and address families)以创建TCP / IP套接字(我假设这是您想要的,因为您正在尝试连接到IP地址)。正如现在所写,socket_create
调用创建了一个Unix socket - 它映射到文件系统上的一个对象,因此出现错误消息。