【问题标题】:How can I "bridge" VNC traffic from two clients connected to a C# proxy-type server?如何“桥接”来自连接到 C# 代理类型服务器的两个客户端的 VNC 流量?
【发布时间】:2011-02-03 07:36:56
【问题描述】:

我希望开发一个异步 C# TCP 服务器,它可以充当两个客户端 VNC 连接之间的代理,透明地在两者之间传递数据。

我已经设置了一些异步客户端-服务器代码,我可以在其中有效地在服务器和任何连接的客户端之间传递消息,现在我需要一种方法来托管一种 VNC 流量代理。

客户端A-------------服务器--------------客户端B 发送 VNC 流量 -> 通过服务器中继 -> 接收 VNC 流量

然后来自客户端 B 的任何响应都简单地流回服务器,然后传递到客户端 A。

如果需要更多信息才能获得正确答案,请告诉我。

谢谢!

【问题讨论】:

  • 嗯? VNC 客户端不能相互通信,客户端与服务器通信。所以我们假设 A 和 B 分别是服务器,并且您使用代理来提供 NAT 穿越。已经有许多解决方案可用,如果您在 Google 上搜索“VNC NAT 遍历”或“VNC 代理”,其中一些是开源的,因此您可以学习和学习。
  • 你能告诉我更多关于你选择的答案以及你是如何实现它的吗?
  • 我的回答不正确,这很可能是我获得 -1 票的原因。我发布的链接允许桥接 TCP 流量,但它必须是自定义流量,因此除非您自己实现 VNC 协议,否则该课程无济于事。抱歉,我从来没有得到这个问题的真正答案。

标签: c# .net sockets proxy reverse-proxy


【解决方案1】:

我设法在服务器故障上得到了这个答案...关键是从您的应用程序中启动“socat”并使用它将连接“链接”在一起。

见:https://serverfault.com/questions/254855/socat-connect-connect-proxy-two-inbound-tcp-connections-to-expose-a-firewalled

更多信息。

【讨论】:

    【解决方案2】:

    您说您已经可以在服务器上接收从客户端发送的数据 - 您只需将您从一个客户端读取的内容准确地写回另一个连接的客户端。

    看起来你已经完成了艰苦的工作,我很困惑你不了解如何完成它。

    【讨论】:

    • 对不起,我半夜写了这个问题,没有考虑。我的问题完全错误。请查看已编辑的问题。
    猜你喜欢
    • 2012-04-18
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多