以C++;使用RabbitMq访问Java

以C++;使用RabbitMq访问Java,java,c++,message-queue,transfer,data-transfer,Java,C++,Message Queue,Transfer,Data Transfer,我在下面找到了用Java为RMQ编写的标准Send和Recv文件。 我对代码做了一些修改,以便将消息存储到变量中 现在,消息是一个我刚输入的字符串,但是我希望能够从C++程序中获取数据(可能是一个变量32),并将它传递到我的SturdMead变量。 Recv文件 import com.rabbitmq.client.*; import java.io.IOException; public class Recv { public static String recv(String

我在下面找到了用Java为RMQ编写的标准Send和Recv文件。 我对代码做了一些修改,以便将消息存储到变量中

现在,消息是一个我刚输入的字符串,但是我希望能够从C++程序中获取数据(可能是一个变量32),并将它传递到我的SturdMead变量。 Recv文件

import com.rabbitmq.client.*; 
import java.io.IOException;

public class Recv 
{
    public static String recv(String ip, String Q) throws Exception 
    {

        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(ip);
        factory.setUsername("test");
        factory.setPassword("test");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
        MyConsumer consumer=new MyConsumer(channel);
        channel.basicConsume(Q,true,consumer);

        return consumer.getStoredMessage();
    }

    public static class MyConsumer extends DefaultConsumer 
    {
        public String storedMessage;

        public MyConsumer(Channel channel) 
        {
            super(channel);
        }

        public String getStoredMessage() 
        {
            return storedMessage;
        }

        @Override
        public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body)
            throws IOException 
        {
            String message = new String(body, "UTF-8");
            System.out.println(" [x] Received '" + message + "'");
            storedMessage = message; // store message here
        }
    }
}
发送文件

import com.rabbitmq.client.Channel;   
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Send {

    public static void send(String ip, String Q) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();

        //set connection info
        factory.setHost(ip);
        factory.setUsername("test");
        factory.setPassword("test");

        //create connection
        Connection connection = factory.newConnection();

        //create channel
        Channel channel = connection.createChannel();

        //publish message
        int a = 1; 
        while (a!=0)
        {
            channel.queueDeclare(Q, false, false, false, null);
            for(int i=1; i<=2; i++)
            {
                String message = "Pizza #"+i;
                channel.basicPublish("", Q, null, message.getBytes("UTF-8"));
                System.out.println(" [x] Sent '" + message + "'" + Q);
            }

            a--;
        }

        //SHUT IT ALL DOWN!
        channel.close();
        connection.close();
    }
}
导入com.rabbitmq.client.Channel;
导入com.rabbitmq.client.Connection;
导入com.rabbitmq.client.ConnectionFactory;
公共类发送{
公共静态void发送(字符串ip、字符串Q)引发异常{
ConnectionFactory工厂=新的ConnectionFactory();
//设置连接信息
工厂设置主机(ip);
出厂设置用户名(“测试”);
出厂设置密码(“测试”);
//创建连接
Connection Connection=factory.newConnection();
//创建频道
Channel=connection.createChannel();
//发布消息
INTA=1;
while(a!=0)
{
queueDeclare(Q,false,false,false,null);
对于(int i=1;i