本文整理汇总了C#中NetMQ.Sockets.DealerSocket.Bind方法的典型用法代码示例。如果您正苦于以下问题:C# DealerSocket.Bind方法的具体用法?C# DealerSocket.Bind怎么用?C# DealerSocket.Bind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NetMQ.Sockets.DealerSocket
的用法示例。
在下文中一共展示了DealerSocket.Bind方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SendAndReceive
public void SendAndReceive()
{
using (var front = new RouterSocket())
using (var back = new DealerSocket())
{
front.Bind("inproc://frontend");
back.Bind("inproc://backend");
var proxy = new Proxy(front, back);
Task.Factory.StartNew(proxy.Start);
using (var client = new RequestSocket())
using (var server = new ResponseSocket())
{
client.Connect("inproc://frontend");
server.Connect("inproc://backend");
client.SendFrame("hello");
Assert.AreEqual("hello", server.ReceiveFrameString());
server.SendFrame("reply");
Assert.AreEqual("reply", client.ReceiveFrameString());
}
proxy.Stop();
}
}
示例2: ControlSocketObservedMessages
public void ControlSocketObservedMessages()
{
using (var front = new RouterSocket())
using (var back = new DealerSocket())
using (var controlPush = new PushSocket())
using (var controlPull = new PullSocket())
{
front.Bind("inproc://frontend");
back.Bind("inproc://backend");
controlPush.Bind("inproc://control");
controlPull.Connect("inproc://control");
var proxy = new Proxy(front, back, controlPush);
Task.Factory.StartNew(proxy.Start);
using (var client = new RequestSocket())
using (var server = new ResponseSocket())
{
client.Connect("inproc://frontend");
server.Connect("inproc://backend");
client.SendFrame("hello");
Assert.AreEqual("hello", server.ReceiveFrameString());
server.SendFrame("reply");
Assert.AreEqual("reply", client.ReceiveFrameString());
}
Assert.IsNotNull(controlPull.ReceiveFrameBytes()); // receive identity
Assert.IsEmpty(controlPull.ReceiveFrameString()); // pull terminator
Assert.AreEqual("hello", controlPull.ReceiveFrameString());
Assert.IsNotNull(controlPull.ReceiveFrameBytes()); // receive identity
Assert.IsEmpty(controlPull.ReceiveFrameString()); // pull terminator
Assert.AreEqual("reply", controlPull.ReceiveFrameString());
proxy.Stop();
}
}
示例3: ReconnectOnRouterBug
public void ReconnectOnRouterBug()
{
{
using (var dealer = new DealerSocket())
{
dealer.Options.Identity = Encoding.ASCII.GetBytes("dealer");
dealer.Bind("tcp://localhost:6667");
using (var router = new RouterSocket())
{
router.Options.RouterMandatory = true;
router.Connect("tcp://localhost:6667");
Thread.Sleep(100);
router.SendMoreFrame("dealer").SendFrame("Hello");
var message = dealer.ReceiveFrameString();
Assert.That(message == "Hello");
router.Disconnect("tcp://localhost:6667");
Thread.Sleep(1000);
router.Connect("tcp://localhost:6667");
Thread.Sleep(100);
router.SendMoreFrame("dealer").SendFrame("Hello");
message = dealer.ReceiveFrameString();
Assert.That(message == "Hello");
}
}
}
}
示例4: Unbind
public void Unbind(string protocol)
{
using (var server = new DealerSocket())
{
string address1, address2;
// just making sure can bind on both addresses
using (var client1 = new DealerSocket())
using (var client2 = new DealerSocket())
{
if (protocol == "tcp")
{
var port1 = server.BindRandomPort("tcp://localhost");
var port2 = server.BindRandomPort("tcp://localhost");
address1 = "tcp://localhost:" + port1;
address2 = "tcp://localhost:" + port2;
client1.Connect(address1);
client2.Connect(address2);
}
else
{
Debug.Assert(protocol == "inproc");
address1 = "inproc://localhost1";
address2 = "inproc://localhost2";
server.Bind(address1);
server.Bind(address2);
client1.Connect(address1);
client2.Connect(address2);
}
Thread.Sleep(100);
// we should be connected to both server
client1.SendFrame("1");
client2.SendFrame("2");
// the server receive from both
server.SkipFrame();
server.SkipFrame();
}
// unbind second address
server.Unbind(address2);
Thread.Sleep(100);
using (var client1 = new DealerSocket())
using (var client2 = new DealerSocket())
{
client1.Options.DelayAttachOnConnect = true;
client1.Connect(address1);
client2.Options.DelayAttachOnConnect = true;
if (protocol == "tcp")
{
client2.Connect(address2);
client1.SendFrame("1");
server.SkipFrame();
Assert.IsFalse(client2.TrySendFrame(TimeSpan.FromSeconds(2), "2"));
}
else
{
Assert.Throws<EndpointNotFoundException>(() => { client2.Connect(address2); });
}
}
}
}
示例5: Disconnect
public void Disconnect(string protocol)
{
using (var server1 = new DealerSocket())
using (var server2 = new DealerSocket())
using (var client = new DealerSocket())
{
string address2;
if (protocol == "tcp")
{
var port1 = server1.BindRandomPort("tcp://localhost");
var port2 = server2.BindRandomPort("tcp://localhost");
client.Connect("tcp://localhost:" + port1);
client.Connect("tcp://localhost:" + port2);
address2 = "tcp://localhost:" + port2;
}
else
{
server1.Bind("inproc://localhost1");
server2.Bind("inproc://localhost2");
client.Connect("inproc://localhost1");
client.Connect("inproc://localhost2");
address2 = "inproc://localhost2";
}
Thread.Sleep(100);
// we should be connected to both server
client.SendFrame("1");
client.SendFrame("2");
// make sure client is connected to both servers
server1.SkipFrame();
server2.SkipFrame();
// disconnect from server2, server 1 should receive all messages
client.Disconnect(address2);
Thread.Sleep(100);
client.SendFrame("1");
client.SendFrame("2");
server1.SkipFrame();
server1.SkipFrame();
}
}
示例6: TestProxySendAndReceiveWithExternalPoller
public void TestProxySendAndReceiveWithExternalPoller()
{
using (var front = new RouterSocket())
using (var back = new DealerSocket())
using (var poller = new NetMQPoller { front, back })
{
front.Bind("inproc://frontend");
back.Bind("inproc://backend");
var proxy = new Proxy(front, back, null, poller);
proxy.Start();
poller.RunAsync();
using (var client = new RequestSocket())
using (var server = new ResponseSocket())
{
client.Connect("inproc://frontend");
server.Connect("inproc://backend");
client.SendFrame("hello");
Assert.AreEqual("hello", server.ReceiveFrameString());
server.SendFrame("reply");
Assert.AreEqual("reply", client.ReceiveFrameString());
// Now stop the external poller
poller.Stop();
client.SendFrame("anyone there?");
// Should no longer receive any messages
Assert.IsFalse(server.TrySkipFrame(TimeSpan.FromMilliseconds(50)));
}
}
}
示例7: StoppingProxyDisengagesFunctionality
public void StoppingProxyDisengagesFunctionality()
{
using (var front = new RouterSocket())
using (var back = new DealerSocket())
{
front.Bind("inproc://frontend");
back.Bind("inproc://backend");
var proxy = new Proxy(front, back);
Task.Factory.StartNew(proxy.Start);
// Send a message through to ensure the proxy has started
using (var client = new RequestSocket())
using (var server = new ResponseSocket())
{
client.Connect("inproc://frontend");
server.Connect("inproc://backend");
client.SendFrame("hello");
Assert.AreEqual("hello", server.ReceiveFrameString());
server.SendFrame("reply");
Assert.AreEqual("reply", client.ReceiveFrameString());
proxy.Stop(); // blocks until stopped
using (var poller = new NetMQPoller { front, back })
{
poller.RunAsync();
client.SendFrame("anyone there?");
// Should no longer receive any messages
Assert.IsFalse(server.TrySkipFrame(TimeSpan.FromMilliseconds(50)));
}
}
}
}
示例8: StartAgainAfterStop
public void StartAgainAfterStop()
{
using (var front = new RouterSocket())
using (var back = new DealerSocket())
{
front.Bind("inproc://frontend");
back.Bind("inproc://backend");
var proxy = new Proxy(front, back);
Task.Factory.StartNew(proxy.Start);
// Send a message through to ensure the proxy has started
using (var client = new RequestSocket())
using (var server = new ResponseSocket())
{
client.Connect("inproc://frontend");
server.Connect("inproc://backend");
client.SendFrame("hello");
Assert.AreEqual("hello", server.ReceiveFrameString());
server.SendFrame("reply");
Assert.AreEqual("reply", client.ReceiveFrameString());
}
proxy.Stop(); // blocks until stopped
// Start it again
Task.Factory.StartNew(proxy.Start);
// Send a message through to ensure the proxy has started
using (var client = new RequestSocket())
using (var server = new ResponseSocket())
{
client.Connect("inproc://frontend");
server.Connect("inproc://backend");
client.SendFrame("hello");
Assert.AreEqual("hello", server.ReceiveFrameString());
server.SendFrame("reply");
Assert.AreEqual("reply", client.ReceiveFrameString());
}
proxy.Stop(); // blocks until stopped
}
}
示例9: StartAndStopStateValidation
public void StartAndStopStateValidation()
{
using (var front = new RouterSocket())
using (var back = new DealerSocket())
{
front.Bind("inproc://frontend");
back.Bind("inproc://backend");
var proxy = new Proxy(front, back);
Task.Factory.StartNew(proxy.Start);
// Send a message through to ensure the proxy has started
using (var client = new RequestSocket())
using (var server = new ResponseSocket())
{
client.Connect("inproc://frontend");
server.Connect("inproc://backend");
client.SendFrame("hello");
Assert.AreEqual("hello", server.ReceiveFrameString());
server.SendFrame("reply");
Assert.AreEqual("reply", client.ReceiveFrameString());
}
Assert.Throws<InvalidOperationException>(proxy.Start);
Assert.Throws<InvalidOperationException>(proxy.Start);
Assert.Throws<InvalidOperationException>(proxy.Start);
proxy.Stop(); // blocks until stopped
Assert.Throws<InvalidOperationException>(proxy.Stop);
}
}
示例10: RouterMandatoryTrueThrowsHostUnreachableException
public void RouterMandatoryTrueThrowsHostUnreachableException()
{
{
using (var dealer = new DealerSocket())
{
dealer.Options.Identity = Encoding.ASCII.GetBytes("dealer");
dealer.Bind("tcp://localhost:6667");
using (var router = new RouterSocket())
{
router.Options.RouterMandatory = true;
router.Connect("tcp://localhost:8889");
Assert.Throws<HostUnreachableException>(() => router.SendMoreFrame("dealer").SendFrame("Hello"));
}
}
}
}
示例11: RouterMandatoryFalseDiscardsMessageSilently
public void RouterMandatoryFalseDiscardsMessageSilently()
{
{
using (var dealer = new DealerSocket())
{
dealer.Options.Identity = Encoding.ASCII.GetBytes("dealer");
dealer.Bind("tcp://localhost:6667");
using (var router = new RouterSocket())
{
router.Connect("tcp://localhost:8889");
Assert.DoesNotThrow(() => router.SendMoreFrame("dealer").SendFrame("Hello"));
}
}
}
}