sockets - 现有的 TCP 中继解决方案

标签 sockets tcp

我有一个场景需要使用 TCP 中继。在开始编写自定义内容之前,我想看看是否有人知道可以为我做这件事的现有软件。

我在不同的网络上有 2 台设备无法相互连接。我们称它们为网络 A 和 B。这些设备需要通信,它们可以通过网络 C 上的“中间人”中继进行通信。A 可以连接到 C,B 可以连接到 C。C 不能连接到 A 或 B .

A -> C <- B

思路如下:

  1. A 建立到 C 的 TCP 连接并简单地等待
  2. 当 B 需要 A 的东西时,它会建立到 C 的 TCP 连接。
  3. C 从 B 读取数据并用它响应 A 已经打开的连接。
  4. A 处理数据并响应 C,C 转发给 B。

是否有现成的工具可以做到这一点?

最佳答案

如此处解释:https://serverfault.com/questions/634516/existing-tcp-relay-solutions/634519

socat TCP4-LISTEN:12345 TCP4-LISTEN:54321

(其中 12345 和 54321 是服务器监听每个连接的端口)。一个客户端连接到一个端口,另一个连接到另一个端口,然后双向交换数据。如果一台机器在另一台机器连接之前发送数据,它会被缓冲并在连接后发送。

关于sockets - 现有的 TCP 中继解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26251714/

相关文章:

c++ - 使用 boost 序列化将 C++ 中的对象序列化为二进制格式以便通过套接字使用是否安全?

http - 通过 HTTP(s) 代理模拟 TCP 连接的正确方法是什么?

c# - 多个客户端的异步 TCP 服务器

c - NetworkByteOrder 是否与 Big endian 相同?

python - 操作系统错误: [WinError 10049] How do I tackle this error?

Android - 套接字连接,即使它不能

sockets - 使用Kotlin + Sockets +协程的标准方式是什么?

python - scapy 花费无限时间发送 TCP SYN 数据包而没有回复。

java - 在 Java TCP 中接受多个客户端

sockets - UDP 数据包可以像 TCP 一样部分发送吗?