Я стабилизировал сокетное соединение между Клиентом и Сервером, но теперь я пытаюсь заставить Сервер закрывать соединение всякий раз, когда он получает конкретное сообщение («FIM»), пока у меня нетудачи.Я продолжаю посылать сообщение "FIM", и соединение не закрывается
Вот код:
class Cliente {
public static void main(String argv[]) throws UnknownHostException, IOException {
InetAddress ip = InetAddress.getLocalHost();
String hostName = ip.getHostName();
Socket meuSocket = new Socket(hostName, 6789);
PrintWriter saida = new PrintWriter(meuSocket.getOutputStream(), true);
BufferedReader digitado = new BufferedReader(new InputStreamReader(System.in));
while (meuSocket.isConnected()) {
String mensagemParaServidor = digitado.readLine();
if (mensagemParaServidor == "FIM") {
meuSocket.close();
break;
}
saida.println(mensagemParaServidor);
}
}
}
class Servidor {
public static final int PORT = 6789;
public static void main(String argv[]) throws IOException {
new Servidor().rodarServidor();
}
public void rodarServidor() throws IOException {
ServerSocket serverSocket = new ServerSocket(PORT);
System.out.println("Servidor pronto");
while (true) {
Socket meuSocket = serverSocket.accept();
new ServerThread(meuSocket).start();
}
}
}
public class ServerThread extends Thread {
Socket meuSocket;
ServerThread(Socket meuSocket) {
this.meuSocket = meuSocket;
}
public void run() {
try {
String mensagemRecebida = null;
BufferedReader entrada = new BufferedReader(new InputStreamReader(meuSocket.getInputStream()));
while (((mensagemRecebida = entrada.readLine()) != null)
|| ((mensagemRecebida = entrada.readLine()) != "FIM")) {
System.out.println("Cliente enviou: " + mensagemRecebida);
DataOutputStream saida = new DataOutputStream(meuSocket.getOutputStream());
saida.writeBytes("Obrigado!");
}
System.out.println("Fechando servidor");
meuSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Спасибо!