[英]Communication failure between PHP and Java through socket
我遇到了一个问题,希望你们可能知道我要去哪里了。
我正在尝试通过PHP向正在运行的JAVA程序发送和接收信息。
该程序是kickknockserver 。
我使用的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只会使我的浏览器卡住,因此我必须完全重新启动它才能使其再次运行。
我一直在尝试阅读的方法是真正学习如何通过端口进行通信,但是我只是不明白为什么我无法通过已经开放的端口进行连接和接受通信。
您引用的PHP代码也适用于服务器。 TCP连接具有服务器端和客户端。 您无法神奇地使服务器彼此“交谈”。
您正在使用socket_bind
(一种PHP函数)将服务器套接字绑定到本地端口并开始等待传入连接。 您想使用socket_connect($socket, $address, $service_port)
将客户端套接字连接到另一个已经运行的服务器(在您的情况下为Java Server)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.