Socket TCP

0 respostas
java
gustavodefreitasmene

Boa noite a todos!
Estou começando a trabalhar com Sockets e estou precisando de uma ajuda para testar se meu Socket está funcionando perfeitamente.
Meu ClientSocket deve passar uma String e meu ServerSocket deve ler esta String e gravar no BD.

Se alguém puder me ajudar ficarei grato,
segue abaixo minhas classes:

public class Servidor {

static ExecutorService es;

public static void main(String[] args) throws Exception {
    es = Executors.newFixedThreadPool(30);               
    ServerSocket servidor = new ServerSocket(2010);
    while (true) {
        Socket soquete = null;
        try {
            System.out.println("Aguardando cliente: ");
            soquete = servidor.accept();
            System.out.println("Cliente Conectado: ");
            es.execute(new ConexaoTCP(soquete));
            
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }
}

}

public class ConexaoTCP implements Runnable {

Socket soquete;

public ConexaoTCP(Socket soquete) {
    super();
    this.soquete = soquete;
}

public void run() {
    System.out.println("Rodando Thread"+Thread.currentThread().getName());
    BufferedReader in = null;
    try {
        System.out.println("soquete inputstream " + soquete.getInputStream());
        in = new BufferedReader(new InputStreamReader(soquete.getInputStream()));
        
        System.out.println("in " + in);
        System.out.println("in.readLine " + in.readLine());

        while (!in.ready()) {System.out.println("!in.ready()");}
        String str =in.readLine();

        System.out.println("Received string: "+ str); // Read one line and output
        if (!str.contains("ST300STT")){
            System.out.println("!str.contains(ST300STT)");
            return;
        }                                    

    } catch (Exception e) {
        e.printStackTrace();
    } finally { // sempre passa aqui independente do exception
        try {
            System.out.println("finally");
            in.close();
            soquete.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
}

}

public class Cliente {

public static void main(String[] args) {
    
    try {
        Socket soquete = new Socket("127.0.0.1", 2010);
        String s = "ST300STT;205282563;02;393;20160408;17:42:31;1f5c29;-20.852390;-041.096868;015.848;174.46;10;1;57031513;28.39;100000;2;8258;183921;3.9;0";
        
        DataInputStream dtaIn = new DataInputStream(soquete.getInputStream());
        DataOutputStream dtaOut = new DataOutputStream(soquete.getOutputStream());                        
        
        dtaOut.writeUTF(s);
        
        System.out.println(dtaIn);
        
        String sIn = dtaIn.readUTF();
        
        System.out.println(sIn);
                    
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }         
}

}

Criado 8 de abril de 2016
Respostas 0
Participantes 1