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();
}
}
}