Boa tarde,
Estou tentando fazer uma comunicação cliente/servidor através de socket. Mas não estou conseguindo capturar a resposta do servidor pelo meu cliente.
Alguém pode me dizer onde estou errando?
Segue abaixo os códigos:
Cliente
import java.net.;
import java.io.;
public class Teste {
public static void main(String[] args){
Socket server;
BufferedReader dtin;
DataOutputStream dtout;
String sentrada, ssaida;
try{
server = new Socket("localhost", 23);
dtin = new BufferedReader(new InputStreamReader(server.getInputStream()));
dtout = new DataOutputStream(server.getOutputStream());
ssaida = "Posso entrar?";
sentrada = "nao";
dtout.writeByte(13);
dtout.flush();
dtout.writeUTF(ssaida);
dtout.flush();
dtout.writeByte(13);
dtout.flush();
System.out.println(ssaida);
while ((sentrada = dtin.readLine()) != null){
System.out.println("Esperando... " + sentrada.length());
System.out.println("Segunda "+ sentrada + ".");
if (sentrada.equals("sim")){
System.out.println("Entrou no IF");
ssaida = "Oi, tudo bem?";
dtout.writeByte(13);
dtout.flush();
dtout.writeUTF(ssaida);
dtout.flush();
while ((sentrada = dtin.readLine()) != null){
System.out.println("Servidor: " + sentrada);
dtout.writeByte(13);
dtout.flush();
dtout.writeUTF(ssaida);
dtout.flush();
if (sentrada.equals("Fim.")){
dtout.writeUTF("Conexao Terminada.");
dtout.flush();
break;
}
}
break;
}
else{
return;
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
Servidor:
import java.io.*;
import java.net.*;
public class TesteServer {
public static void main(String[] args){
ServerSocket servsocket;
Socket cliente;
BufferedReader dtin;
DataOutputStream dtout;
String sentrada, ssaida;
try{
servsocket = new ServerSocket(23);
System.out.println("Aguardando conexao cliente...");
cliente = servsocket.accept();
dtin = new BufferedReader(new InputStreamReader(cliente.getInputStream()));
dtout = new DataOutputStream(cliente.getOutputStream());
while ((sentrada = dtin.readLine()) != null){
System.out.println("Sentrada: " + sentrada);
if (sentrada.equals("Posso entrar?")){
ssaida = "sim";
System.out.println(ssaida);
dtout.writeByte(13);
dtout.flush();
dtout.writeUTF(ssaida);
dtout.flush();
System.out.println("Ssaida: " + ssaida);
while ((sentrada = dtin.readLine()) != null){
if (sentrada.equals("Oi, tudo bem?")){
ssaida = "Fim.";
dtout.writeByte(13);
dtout.flush();
dtout.writeUTF(ssaida);
dtout.flush();
System.out.println("Ssaida: " + ssaida);
break;
}
}
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
Grato.