使用PHP客户端无法读取从Java套接字服务器响应(Cannot read response fro

2019-10-31 17:10发布

我用Java编写的服务器。 它是一种简单的一个呼应“HELLO”当客户端连接,然后回显应答任何客户端发送。 代码如下:

ServerSocket ss=new ServerSocket(2001);
while(true) {
  Socket s=ss.accept();
  BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
  PrintWriter out=new PrintWriter(s.getOutputStream(),true);
  out.println("HELLO");
  String msg=in.readLine();
  out.println(msg);
}

我有一个连接到服务器,PHP脚本:

<?php
  $socket=socket_create(AF_INET,SOCK_STREAM,getprotobyname('tcp'));
  socket_connect($socket,'127.0.0.1',2001);
  $msg=socket_read($socket,10);
  echo socket_write($socket,'I am the client.');
  $msg=socket_read($socket,20);
  echo $msg;
?>

我从服务器获取的“HELLO”消息,该服务器也获得“我的客户”的消息,但PHP客户端没有得到答复回来。 我在做什么错在这里?

Answer 1:

in.readLine()不会返回,直到它看到一个行终止。

除非socket_write在PHP隐式添加行结束符,你需要做自己,使Java端看你写的文字的完整产品线。



文章来源: Cannot read response from Java socket server using PHP client