4.2. 接收信息
此客户端程序使用 < connection-url > 连接到服务器,为源 <address& gt; 创建一个接收器,并接收信息直到终止或到达 < count> 信息。
示例:接收信息
namespace SimpleRecv
{
using System;
using Amqp;
class SimpleRecv
{
static void Main(string[] args)
{
string url = (args.Length > 0) ? args[0] :
"amqp://guest:guest@127.0.0.1:5672";
string source = (args.Length > 1) ? args[1] : "examples";
int count = (args.Length > 2) ? Convert.ToInt32(args[2]) : 10;
Address peerAddr = new Address(url);
Connection connection = new Connection(peerAddr);
Session session = new Session(connection);
ReceiverLink receiver = new ReceiverLink(session, "recv-1", source);
for (int i = 0; i < count; i++)
{
Message msg = receiver.Receive();
receiver.Accept(msg);
Console.WriteLine("Received: " + msg.Body.ToString());
}
receiver.Close();
session.Close();
connection.Close();
}
}
}
- 1
使用 Amqp;导入 Amqp 命名空间中定义的类型。AMQP 由项目引用 Amqp.Net.dll 定义,并提供与 AMQ .NET 关联的所有类、接口和值类型。- 2
- 命令行 arg[0]
url是 AMQP 连接的主机或虚拟主机的网络地址。这个字符串描述了连接传输、用户和密码凭证,以及远程主机上连接的端口号。URL 可以处理路由器网络的代理、独立对等点或入口点。 - 3
- 命令行 arg[1] 源是远程主机上消息源端点或资源的名称。
- 4
- 命令行 arg[2]
计数是要发送的消息数。 - 5
peerAddr是创建 AMQP 连接所需的结构。- 6
- 创建 AMQP 连接。
- 7
接收器是一个客户端 ReceiverLink,可以接收该消息。链接是任意命名的 recv-1。使用环境中有意义的链接名称,并有助于识别忙碌系统中的流量。链接名称不受到限制,但在同一会话中必须唯一。- 8
- 收到一条消息。
- 9
- 可以接受消息。这会将消息的所有权从对等点传输到接收器。
- 10
- 收到所有消息后,协议对象将按顺序关闭。
运行示例
要运行示例程序,请编译程序并从命令行执行它。如需更多信息,请参阅 第 3 章 开始使用。
<install-dir>\bin\Debug>simple_recv "amqp://guest:guest@localhost" service_queue