我想知道是否有一种方法可以让您拥有一个名为 appA 的 .net 应用程序,它在其中接收一个 tcp 套接字连接,然后根据某些规则将套接字连接发送到另一个 .net 应用名为 appB。 我知道这违反了很多安全和良好做法,但如果可能的话会很有趣。
最佳答案
代理
一种选择是让 AppA 成为代理。也就是说,它接受连接,并代表客户端连接到 AppB - 并且仅转发数据。
套接字复制
您真正需要的解决方案是 Socket.DuplicateAndClose()
(确保您仔细阅读文档)。这允许您在进程之间转移对套接字的控制。
通常你会:
- 启动 AppA、AppB 和 AppC。
- 使用远程处理允许 AppA 与 AppB 和 AppC 通信。
- 与 AppA 建立连接后,确定将其发送给谁并:
- 复制并关闭 AppA 中的套接字。
- 通过远程处理将套接字发送到子进程。
- 使用
Socket(SocketInformation)
构造函数在 AppB 中打开套接字。
关于c# - 在应用程序之间发送套接字 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359330/