我正在寻找一种简单的方法来模拟仲裁应用程序的测试目的。这个想法是创建三个单独的节点(在三台不同的计算机上),这些节点将作为我测试的C#服务器套接字的客户端工作。假设我正在尝试设置4个客户端 - 服务器连接,我希望仲裁者随机确定哪个节点获得了哪些连接。如果其中一个节点死亡(应用程序关闭),我希望仲裁器将其连接传递给另一个节点。当一个节点重新开启时,我想让仲裁者重新分配连接。任何链接或示例代码都会非常有帮助。C#通过计算机之间的套接字连接
0
A
回答
0
套接字连接不会这样工作 - 它们是在两台机器之间创建的。好消息是创建新连接的成本并不显着。
如果您想了解如何与他们一起详细工作,阅读Berkely Sockets大概是值得的。
除非你的意思是你不关心实际的连接对象,而是关于连接的总数。在这种情况下,您可以使用的是Semaphore或SemaphoreSlim来控制连接的总数。这将允许您随机分配连接,直到达到最大数量。然后,当连接丢失时,再次重新分配,直到信号量最大;当新客户端连接时,您可以执行相反的过程 - 关闭随机当前客户端的连接,并向新客户端打开新连接,直到数量达到您的喜好。
让我知道如果这就是你的想法 - 我不想太过分,如果你想到别的东西。
0
你不能在计算机之间“传递”套接字。当您创建它们时,TCP/IP堆栈将分配各种不能传输的设置,例如TCP序列号等。然而,你可以做的是让你的“仲裁者”保持与所有传入连接。然后,仲裁器将为您的节点创建另一个套接字,以便它将充当两者之间的代理。
你应该看看了负载均衡的一般架构,这是你想要完全是我想
相关问题
- 1. 建立计算机之间的套接字连接?
- 2. 通过UNIX套接字的Docker容器之间的连接
- 3. 通过通过交换机连接的计算机访问servlet
- 4. 无法连接不同计算机上的Python套接字
- 5. 通讯通过套接字连接:
- 6. 通过无线连接的两台计算机之间的信息交换
- 7. 通过Nodejs的TLS套接字连接
- 8. Android套接字连接到计算机上的服务器不连接
- 9. 在某些计算机上未连接Java套接字
- 10. 通过套接字向其他计算机发送linux命令
- 11. 在NAT之后的两台计算机之间建立连接
- 12. 两台计算机之间使用python套接字进行通信
- 13. 通过本地主机在C#和网站之间进行套接字/通知
- 14. Java与Objective C之间的套接字连接
- 15. 通过WiFi连接Java套接字?
- 16. 通过套接字连接Python和Java
- 17. 连接到不同的机器, '无法通过套接字连接' 错误
- 18. Python通过套接字连接访问远程打印机
- 19. 通过主机名连接到Java套接字
- 20. C#:通过套接字连接到Gmail的SMTP服务器
- 21. 如何模拟两台计算机之间的无线连接?
- 22. SQLAlchemy在Unix套接字或IPv4之前尝试通过IPv6连接PostgreSQL连接
- 23. C#-PHP套接字连接
- 24. c#套接字连接
- 25. C#套接字双连接?
- 26. C#.NET通过网络在计算机之间进行通信
- 27. 计算机网络中的套接字,端口和进程之间的关系
- 28. 在TCP套接字连接期间通过对端重置连接?
- 29. C#UWP通过套接字连接到tcp客户端
- 30. 无法通过套接字连接到HTTP服务C
实际套接字连接是绑,使他们的机器,但你可以在仲裁连接的抽象和保留一份清单,说明谁在节点宕机时获得了可以重新分配的内容。 – 2013-02-26 21:14:27
当客户端关闭时客户端连接迁移的想法非常奇怪。也许你会在故障转移群集中这样做,但这听起来像是在谈论其他事情。 – bmm6o 2013-02-27 01:06:38