C#在计算机之间传递套接字连接

时间:2013-02-26 20:38:55

标签: c# sockets

我正在寻找一种简单的方法来模拟仲裁应用程序以进行测试。我们的想法是创建三个独立的节点(在三台不同的计算机上),这些节点将作为C#服务器套接字的客户端进行测试。让我们说我试图建立4个客户端 - 服务器连接,我希望仲裁器随机确定哪个节点获得哪些连接。如果其中一个节点死亡(应用程序关闭),我希望仲裁器将其连接传递给另一个节点。当节点重新打开时,我希望仲裁器重新分配连接。任何链接或示例代码都非常有用。

2 个答案:

答案 0 :(得分:0)

套接字连接不起作用 - 它们是在两台机器之间创建的。好消息是创建新连接的成本并不高。

如果您想了解如何详细使用它们,那么阅读Berkely Sockets可能是值得的。

除非您的意思是不关心实际的连接对象,而是关心连接的总数。在这种情况下,您可以使用SemaphoreSemaphoreSlim来控制连接总数。这将允许您随机分配连接,直到达到最大数量。然后,当连接丢失时,再次重新分配,直到信号量最大化为止;当新客户端连接时,您可以执行相反的过程 - 关闭与随机当前客户端的连接,并向新客户端打开新的客户端,直到数字符合您的喜好。

如果你想到的话,请告诉我 - 如果你想到别的东西,我不想太过深入。

答案 1 :(得分:0)

你无法真正在计算机之间“传递”套接字。创建它们时,TCP / IP堆栈会分配无法传输的各种设置,例如TCP序列号等。然而,你可以做的是让你的“仲裁者”在所有传入的连接中保持活力。仲裁器然后将为您的节点创建另一个套接字,以便它将充当两者之间的代理。

你应该查看负载平衡一般架构,这是你想要的我想的

相关问题