我需要编写一个充当客户端和服务之间代理的应用程序。我想做的就是读取从客户端到服务的双向传输数据,反之亦然。本质上,我希望只需插入此代理即可,无需在客户端或服务中重新配置端口设置。这可能吗?我可以在C#.Net框架中使用哪些特定的库来提供帮助吗?
编辑:该服务在远程计算机上。
编辑:示例:让我们假设客户端通过端口1234与服务进行通信,并且服务通过端口5678与客户端通信。我希望应用程序监听并读取数据传输通过这些端口,而无需实际重新配置客户端或服务。这可能吗?
答案 0 :(得分:3)
如果您要阅读/收听/捕获数据,那么它不需要是代理。我会推荐WinPcap库(http://www.winpcap.org/)。虽然它是一个C / C ++库,但我认为C#/ .NET应用程序很难使用它。
答案 1 :(得分:1)
如果您希望在代理程序启动后立即重定向正在进行的连接,那么简短的答案很难,真的很难也不可能。据我所知,一旦建立了两端之间的连接,你就无法改变它(除非你有权访问路由器并动态修改其NAT,就像负载均衡器......)。如果你只想阅读&不要修改流量数据,使用WinPcap或任何数据包嗅探器。在金钱和技术工作方面,这些解决方案中的任何一个都非常昂贵:)
因为你没有给我们你想要做的事情,我认为你不需要那么“复杂”。这是一个解决方案,以防您满足以下先决条件:
接下来你应该做的是: