Connection reset Socket

0 respostas
A

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.

Criado 30 de novembro de 2011
Respostas 0
Participantes 1