2
I have this code that involves socket TCP and threads.
How do I get the server to send a message when the client connects? In this case the client sends the message and the result has to return to the client, and it does not return.
I tried but does not send, I already picked up some examples but by this code will not.
public class Cliente extends Thread {
DataOutputStream saida;
BufferedReader teclado;
BufferedReader entrada;
public static void main(String args[]) {
try {
Socket conexao = new Socket("localhost", 40000);
System.out.println("Conectado ao servidor " + "localhost" + ", na porta: " + 40000);
Thread t = new Cliente(conexao);
t.start();
} catch (IOException e) {
System.out.println("IOException" + e);
}
}
private Socket conexao;
public Cliente(Socket s) {
conexao = s;
}
public void run() {
try {
saida = new DataOutputStream(conexao.getOutputStream());
teclado = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Digite qualquer coisa");
String digito = teclado.readLine();
saida.writeUTF(digito);
entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
entrada.readLine();
} catch (IOException e) {
System.out.println("IOException" + e);
} finally {
try {
conexao.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Server class:
public class Servidor extends Thread {
public static void main(String args[]) {
ServerSocket s = null;
try {
s = new ServerSocket(40000);
System.out.println(" <<Servidor iniciado>>");
System.out.println("<<Aguardando conexão na Porta 40000>>");
while (true) {
Socket conexao = s.accept();
System.out.println("Conexao estabelecida com eleitor com o ip: " + conexao.getInetAddress().getHostAddress());
Thread t = new Servidor(conexao);
t.start();
}
} catch (IOException e) {
System.out.println("IOException " + e);
}
}
private Socket conexao;
public Servidor(Socket s) {
conexao = s;
}
public void run() {
try {
DataInputStream entrada = new DataInputStream(conexao.getInputStream());
DataOutputStream saida = new DataOutputStream(conexao.getOutputStream());
String clientedigitou = entrada.readUTF();
System.out.println("Cliente Digitou: " + clientedigitou);
saida.writeUTF(clientedigitou);
} catch (IOException e) {
System.out.println("IOException " + e);
}
}
}