我正在尝试在 PHP 套接字和 JAVA 套接字之间传输简单的消息。 php套接字成功发送数据并正在等待Java服务器响应。但另一方面,Java 服务器的套接字仍在等待来自 PHP 的消息。
这是 Java 代码:
ServerSocket s = new ServerSocket(4280);
Socket sock = s.accept();
System.out.println("Connected");
BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
System.out.println("Reading");
String str = br.readLine();
System.out.println("Writing");
bw.write(str);
输出:
已连接
阅读
这是 PHP 代码:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, "localhost", 4280);
socket_write($socket, "Hello");
echo socket_read($socket, 10);
socket_write($socket, "Lelo");
echo socket_read($socket, 10);
输出:
浏览器:WAITING本地主机
最佳答案
有两件事通常会导致问题:
- Java 正在使用
readLine()
方法,但您没有发送换行
并在 PHP 代码中返回。 - 也尝试在 PHP 端进行刷新。
代码:
添加换行符:
socket_write($socket, "Hello\r\n");
关于java - PHP 套接字发送数据,但 Java 套接字未接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238721/