57 lines
1.6 KiB
Java
57 lines
1.6 KiB
Java
package de.ctdo.bunti.ethersex;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.DataOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.net.Socket;
|
|
|
|
/**
|
|
* @author: lucas
|
|
* @date: 26.03.12 00:54
|
|
*/
|
|
@Component
|
|
public class SimpleECMDSender implements ECMDSender {
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(SimpleECMDSender.class);
|
|
private static final int ECMD_TCP_PORT = 2701;
|
|
|
|
@Override
|
|
public ECMDResult sendCommand(ECMDCommand command, String dest) {
|
|
|
|
try {
|
|
Socket client = new Socket(dest, ECMD_TCP_PORT);
|
|
client.setSoTimeout(2000);
|
|
|
|
|
|
DataOutputStream outToServer = new DataOutputStream(client.getOutputStream());
|
|
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(client.getInputStream()));
|
|
|
|
StringBuilder params = new StringBuilder();
|
|
for(String param: command.getParameters()) {
|
|
params.append(" ");
|
|
params.append(param);
|
|
}
|
|
|
|
outToServer.writeBytes(command.getCommand() + params.toString() + '\n');
|
|
|
|
ECMDResult result = new ECMDResult();
|
|
result.setResultString(inFromServer.readLine());
|
|
|
|
client.close();
|
|
|
|
return result;
|
|
|
|
} catch (IOException e) {
|
|
LOGGER.error("Could not send ECMDCommand to " + dest + " on port " + ECMD_TCP_PORT);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
}
|