【发布时间】:2011-11-04 22:12:06
【问题描述】:
我已经在这几天了,只是无法解决问题。我也把它放在了 Ubuntu 论坛上,但什么也没听到。基本上,我在 /tmp/mysockets 中有一个本地套接字,我在 php 脚本中成功创建了它——
if (($sock = socket_create(AF_UNIX, SOCK_STREAM,0)) === false)
{
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
exit();
}
但我无法连接,通过
if (socket_connect($sock, $sock_str) === false)
{
echo "socket_connect() on " . $sock_str . " failed: reason: " . socket_strerror(socket_last_$
socket_close($sock);
exit();
}
这给了我
警告:socket_connect():无法连接 [111]:连接被拒绝 在 /var/www/myscript.php 第 66 行 socket_connect() 上 /tmp/mysockets/sock 失败:原因:连接被拒绝
现在,我认为这可能是权限问题,但我已经对 /tmp、mysockets 和 sock 进行了 chmod 777,这并不重要。可能是什么问题?
【问题讨论】:
-
你打电话给
socket_listen()吗? -
@stewe 脚本在 socket_bind() 上已经失败,见下文
-
监听套接字的是什么?您无法连接到没有人在监听连接的套接字。
-
@duskwuff 脚本中早先启动的进程正在监听它。实际上,在其他几乎相同的脚本中,我没有 socket_bind();我只是根据评论员的建议把它放在这里。
-
您确定在您尝试连接时该进程已开始侦听吗?你可能已经领先了。
标签: php linux sockets connection