在应用程序c#之间发送套接字
我想知道是否有一种方法,你有一个.net应用程序名称appA,它接收一个TCP连接器,然后根据一些规则将套接字连接发送到另一个名为appB的.net应用程序。 我知道这违反了许多安全和良好做法,但如果有可能会很有意思。
代理
一种选择是使AppA成为代理。 也就是说,它接受连接,并代表客户端连接到AppB – 并且只是转发数据。
套接字重复
您真正寻找的解决方案是Socket.DuplicateAndClose()
(请务必仔细阅读文档)。 这允许您在进程之间传输套接字的控制。
通常你会:
- 启动AppA,AppB和AppC。
- 使用远程处理允许AppA与AppB和AppC通信。
- 与AppA建立连接后,确定将其发送给谁,并且:
- 复制并关闭AppA中的套接字。
- 通过远程处理将套接字发送到子进程。
- 使用
Socket(SocketInformation)
构造函数在AppB中打开套接字。
无需转发连接,它可以用作中间人
- 您收到第一个连接
- 处理一些规则
- 好的,连接到AppB以及从AppA获得的所有内容,发送到AppB
- 如果规则说“不”,请向AppA发送错误