java — клиентский сокет зависает при ответе

У меня есть простой TCP-сервер в Java.

// while(true), try catch etc.
serverSocket = new ServerSocket(4444); // Server socket

clientSocket = serverSocket.accept();
inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
bufferedReader = new BufferedReader(inputStreamReader);
message = bufferedReader.readLine();

OutputStream os = clientSocket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("test");
bw.flush();inputStreamReader.close();
clientSocket.close();
bufferedReader.close();
os.close();
osw.close();

и я строю клиент на PHP, но он зависает при получении ответа, когда я собираю тот же самый простой клиент на Java, он работает хорошо. Как решить эту проблему?

PHP-клиент:

$socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
socket_connect($socket, $address, $port);

$message = 'test';$status = socket_sendto($socket, $message, strlen($message), MSG_EOF, $address, $port);
if($status !== FALSE) {
$message = '';
$next = '';

while ($next = socket_read($socket, 1)) {
$message .= $next;
}

var_dump($message);
} else {
echo "Failed";
}

socket_close($socket);

0

Решение

Я нашел решение этой проблемы.

Когда я отправляю сообщение, я должен сделать «\ n» в конце строки. Я не знаю почему. Может кто знает почему?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]