Witam, mam napisany serwer, który zwraca odebraną komendę od klienta napisanego przy użyciu RabbitMQ:
public String receiveCommand()
{
ServerSocket listenSocket = createListenSocket(SERVER_PORT);
Socket clientSocket;
String command = null;
try {
/* Accepts new connection */
System.out.println("Waiting for new client-connection...\n");
clientSocket = listenSocket.accept();
System.out.println("New client-socket created");
/* Reads file size */
DataInputStream in = new DataInputStream(clientSocket.getInputStream());
command = in.readUTF();
in.close();
clientSocket.close();
} catch (IOException ioE) {
ioE.printStackTrace();
} finally {
try {
listenSocket.close();
} catch (IOException ioE) {
ioE.printStackTrace();
}
}
return command;
}
Poniżej klient:
public void sendCommand(String host, int port, Integer robotID, String command) throws IOException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(host);
factory.setPort(port);
String full_command = robotID.toString() + " " + command;
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
channel.basicPublish("", QUEUE_NAME, null, full_command.getBytes());
channel.close();
connection.close();
}
Wszystko działa ok z tym że klient w momencie
Connection connection = factory.newConnection();
Wysyła do serwera dane i serwer widzi null gdyż dane są wysyłane w linii
channel.basicPublish("", QUEUE_NAME, null, full_command.getBytes());
Jak mogę rozwiązać ten problem ??