Java Socket readLine()无限,仅在php脚本超时时结束

时间:2013-06-24 18:27:34

标签: java php sockets loops

我想将带有套接字的消息发送到java服务器,它应该响应。

InputStreamReader inputStream = new InputStreamReader(server.getInputStream());
BufferedReader input = new BufferedReader(inputStream);
String clientSentence = input.readLine();
System.out.println(clientSentence);

这无限,所以我无法向我的php套接字连接发送响应。

PHP:

$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
$result = socket_connect($socket, $host, $port) or die("Could not connect to server\n");
$st="testSalt,broadcast";
$length = strlen($st);

socket_write($socket, $st, $length);

$resp = socket_read($socket, 1024);

2 个答案:

答案 0 :(得分:3)

使用换行符终止PHP套接字中的字符串以匹配Java服务器的readLine语句

$st = "testSalt,broadcast\n";

答案 1 :(得分:1)

我对PHP知之甚少,但在我看来,如果你按原样发送$st的内容,那么Java套接字就不会有任何换行符,因此input.readLine()来电Socket将暂停,直至{{1}}关闭。