首页 文章

套接字服务器,用于将数据中继到一个或多个客户端 . C#

提问于
浏览
2

您好我正在尝试创建各种代理服务器 .
目标是让一个客户端(开始)连接到套接字服务器,然后将套接字服务器中继字节用于另一个服务器的字节 . 最初的概念只是一个中间人 . 我搜索并从MSDN中找到代码来创建套接字服务器,并将数据发送回客户端以及新连接 . 我在创建一个只会来回切换的服务器时遇到了麻烦,但仍在监听新的连接 .

任何提示或方向都会有所帮助 .

这篇文章是我最接近我想做的:Is it possible to 'relay' a socket?

客户端 - > MYSERVER - >目的地(和反向)

客户端应该能够在不修改的情况下与目标进行通信,只需将我的服务器放在中间即可 .

谢谢!

更新:我有一个套接字服务器,读取线上的所有字节 . 然后,我需要将这些字节复制到新的套接字并中继所接收的字节 .

2 回答

  • 0

    我不明白这是什么问题......只需创建服务器类使用Socket.AcceptAsync来接受套接字 . 为每个接受的套接字创建Session类 . 在会话类中使用Socket.ConnectAsync连接到Destination . Build 连接后,开始使用Socket.ReceiveAsync从两个套接字读取数据 . 收到数据后,将其写入对面的套接字 . 为了简化方法,您可以使用NetworkStream - 因为不保证Socket SendAsync / Send发送整个数据,而NetworkStream BeginWrite / Write是 .

    此外,如果不需要性能,您可以使用提交xxxAsync的接受/连接/接收方法 .

  • 1

    也许我们可以使用像DeleGate这样的现有库 . 我们在我们的系统中实现了这一点 . 您可以将其安装为Windows服务 .

相关问题