Olá pessoal.
Eu tenho um aplicativo java que abre um socket de acesso para que clientes possam se conectar nele. Segue abaixo o código:
/**
*
* @author Valdinei F. Lima
*/
import java.io.*;
import java.net.*;
import java.text.*;
import java.util.*;
public class BlueBOXComponente extends Thread {
private Socket conexao;
public BlueBOXComponente( Socket s) {
conexao = s;
}
public static void geraLog( String a, String m ) throws IOException {
/*
* aplicativo.log
* acesso.log
* erro.log
*/
SimpleDateFormat mData = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat mHora = new SimpleDateFormat("HH:mm:ss");
String eData = null;
String eHora = null;
eData = mData.format(new Date());
eHora = mHora.format(new Date());
File arquivo = new File("/box/log/" + a);
FileWriter gravar = new FileWriter(arquivo,true);
PrintWriter mensagem = new PrintWriter(gravar,true);
mensagem.println( "[ " + eData + " - " + eHora + " ] @ " + m );
}
public static void main(String args[]) throws IOException {
String ipServidor = args[0];
try {
ServerSocket s = new ServerSocket(2712);
geraLog("aplicativo.log","[ BlueBOX Componente ] @ [ Servidor.: "+ ipServidor +" ]");
while (true) {
Socket conexao = s.accept();
if (conexao.getInetAddress().getHostAddress().equals( ipServidor )) {
Thread inicia = new BlueBOXComponente( conexao );
inicia.start();
geraLog("acesso.log","[ OK ] "+ conexao.getInetAddress().getHostAddress());
}else{
conexao.close();
geraLog("acesso.log","[ FALHOU ] IP negado { "+ conexao.getInetAddress().getHostAddress() +" } Tentativa de conexão recusada.");
}
}
}
catch (IOException e) {
geraLog("erro.log","[ IOException ] " + e);
}
}
}
quando eu executo esse programa: java -jar BlueBOX_Componente 127.0.0.1
ele abre a porta 2712 para acesso dos clientes. Eu fiz o teste usando o telnet para acessar e funcionou certinho!
Agora eu preciso fazer com que um cliente envie uma classe para este socket server e ele execute a classe que o cliente enviou. Como eu faria isso?
Abraços