我遇到了问题,我希望你们可能知道我哪里出错了。
我试图通过PHP向我运行的JAVA程序发送和接收信息。
该计划是knockknockserver。
我正在使用的PHP代码是:
insert into Student(Studentno,studentFName,StudentLName,Gender, DateOfBirth,YearEnrolled,YearGraduated) Values (123,'JungKook','Jeon','M','1September1997',2015,2018);
我刚从网上抓起来。
理想情况下,交互将是我连接到端口$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);
,然后Java服务器响应4444
。
我遇到的问题是,如果我首先运行Java服务器,PHP脚本无法绑定套接字(我猜测它已经在使用)。
有时socket_accept只会让我的浏览器卡住,所以我必须重新启动它才能让它再次运行。
我真正想做的是学习如何通过端口进行通信,我一直在努力阅读,但我不明白为什么我无法通过已经连接和接受通信开放港口。
答案 0 :(得分:1)
您引用的PHP代码对于服务器来说也是 。 TCP连接具有服务器端和客户端。你无法神奇地与服务员进行“谈话”。
您正在使用socket_bind
这一PHP函数将服务器套接字绑定到本地端口并开始等待传入连接。您希望使用socket_connect($socket, $address, $service_port)
来将客户端套接字连接到另一个已经运行的服务器(在您的情况下是Java服务器)。