【发布时间】:2018-06-28 18:07:41
【问题描述】:
我遇到了一个问题,希望你们知道我哪里出错了。
我正在尝试通过 PHP 向我正在运行的 JAVA 程序发送和接收信息。
程序是knockknockserver。
我使用的 PHP 代码是这样的:
$host='127.0.0.1';
$port=4444;
$socket=socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not
create socket \n");
$result=socket_bind($socket, $host, $port) or die("Could not bind to
socket\n");
$result=socket_listen($socket, 3) or die('Could not set up socket
listenern');
$spawn=socket_accept($socket) or die('Could not accept incoming
connection');
$input=socket_read($result, 1024) or die('Could not read input');
socket_close($spawn);
socket_close($socket);
我刚从网上抓的。
理想的交互是我连接到端口4444,然后Java服务器响应knock knock!。
我遇到的问题是,如果我首先运行 Java 服务器,PHP 脚本无法绑定套接字(我猜是因为它已经在使用中)。
有时 socket_accept 只会让我的浏览器卡住,所以我必须完全重新启动它才能让它再次工作。
我真正想做的是学习如何通过端口进行通信,我一直在尝试阅读,但我只是不明白为什么我无法通过已经打开的端口连接和接受通信。
【问题讨论】:
-
错误信息是什么?
Could not bind to socket\n? -
是的,如果 Java 服务器在端口上运行,我会收到该错误,如果 Java 服务器关闭,我会无法读取输入。