gpt4 book ai didi

java - 无法使用 PHP 客户端从 Java 套接字服务器读取响应

转载 作者:行者123 更新时间:2023-12-01 19:04:28 24 4
gpt4 key购买 nike

我有一个用 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 客户端没有收到回复。我在这里做错了什么?

最佳答案

in.readLine() 在看到行终止符之前不会返回。

除非 PHP 中的 socket_write 隐式添加行终止符,否则您需要自己执行此操作,以便 Java 端看到您已经编写了完整的文本行。

关于java - 无法使用 PHP 客户端从 Java 套接字服务器读取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com