У меня возникли проблемы с отправкой информации с клиента на сервер. Выход должен быть:TCP-сервер в Java
* Сервер: *
$> Java TCPClient/ServerIP/8080
ID пользователя текущего клиента: каменистый // должен напечатать это, но это не
. ..
Client
$> Java TCPServer 8080
Тип Войти, чтобы начать
Войти // ввод пользователя
ОТ СЕРВЕРА: Пожалуйста, войдите в систему с вашим ID пользователя.
каменистый // пользовательского ввода
Отправленные на сервер: каменистый
...
Но сервер не печатает, что заявление из, это нужно делать с буфером или потоковый необходимости чистить вверх? Код приведен ниже.
TCPServer Код:
...
BufferedReader inFromClient = new BufferedReader(
new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient =
new DataOutputStream(connectionSocket.getOutputStream());
...
outToClient.writeBytes("Please log in with your user ID.\n");
String clientId = inFromClient.readLine()
System.out.println("User ID of the current client: " + clientId);
outToClient.writeBytes("Game has started!\n");
TCPClient Код:
...
DataOutputStream outToServer =
new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
...
System.out.println("Type login to start");
if ((inFromUser.readLine()).equals(login))
{
System.out.println("FROM SERVER: " + inFromServer.readLine());
String option = inFromUser.readLine();
outToServer.writeBytes(option);
System.out.println("Sent to Server: "+ option);
//should print "FROM SERVER: Game has started!"
System.out.println("FROM SERVER: " + inFromServer.readLine());
}
...
Вы пробовали 'OutputStream.flush()'? –
Добавьте отладочную информацию, чтобы узнать, что происходит. Что возвращает 'inFromUser.readLine()', если что? –
Каждый результат 'readLine()' должен быть проверен на значение null до того, как вы сделаете что-нибудь еще с ним. – EJP