public static String connect(String ip, int port, String msg) {
try {
// Faz a conexão na PORTA passada pelo parâmetro
socket = new Socket();
socket.connect(new InetSocketAddress(ip, port), 20000); // Endereço IP, porta e timeout, este último muito importante que deve ser calibrado pela necessidade do cliente
// Conexão aceita pelo server
outputStream = new ObjectOutputStream(socket.getOutputStream());
// ---------- Envio da String para o server
try {
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
bw.write(msg); // Escreve a mensagem
bw.flush();
os.close();
osw.close();
bw.close();
} catch (IOException e) {
System.out.println("ERROR - Não foi possível ler os dados da mensagem.");
}
try {
outputStream.writeObject(msg); // Output na String para o server receber
} catch (IOException e) {// Caso ocorra uma exceção ao enviar a mensagem, deve ser tratada aqui:
System.out.println("ERROR - Não foi possível enviar a mensagem ao servidor.");
}
System.out.println("INFO - O arquivo foi processado com sucesso");
}
catch (IOException e) { //Caso ocorra um erro de conexão, deve ser tratada aqui:
System.out.println("ERROR - Não foi possível estabelecer conexão no IP:" + ip + " PORTA: " + port);
System.out.println(e);
}
// O client passa a ser ouvinte
// Recebe uma resposta após a mensagem ser recebido pelo servidor
try {
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String retorno = new String(br);
is.close();
isr.close();
br.close();
StringBuffer sb = new StringBuffer();
//Mensagem de sucesso no layout NDD
sb.append(retorno);
mensagemRespostaDoServidor = sb.toString();
return mensagemRespostaDoServidor; // Retornará a mensagem que o server gerou;
} catch (Exception e) {//Aqui é a mensagem de erro tratada, caso ocorra um erro no retorno
System.out.println("ERROR - Ocorreu erro ao receber resposta do servidor.");
System.out.println(e);
return e;
}
}
|