0

理论:
假设我有一个用 Java 编写的应用程序 A,它使用 TCP 流进行客户端/服务器通信(它位于关系中的客户端)。现在,纯粹作为一个实验,我正在尝试创建一个用 VB.NET 编写的应用程序 B,它将充当应用程序 A 的网络流的代理,允许应用程序 B 读取和写入流。

是否可以从另一个应用程序访问这样的网络流,同时考虑语言边界?

4

1 回答 1

0

你的问题很模糊,但如果你问的是制作代理服务器的可能性,那么是的,有可能。语言无关紧要,但接口很重要(流中内容的编码方式)。例如,Java 通常使用 big endian(首先发送的每个字节序列的最高有效字节)将事物序列化为流,而 .NET 使用 little endian(首先发送的每个字节序列的最低有效字节)。同样,只要您知道数据实际上是如何编码到这些流中的,您就可以编写一个像样的代理服务器。如果您的代理服务器所做的只是传递数据而不关心数据是什么,那么您可以从一个流中读取一个字节并将其写入另一个流。但如果你实际上是在读取值(整数、字符串、图片等),

如果您想实际编辑数据而不是简单地传递数据,将会出现一些复杂情况。您必须处理客户端和服务器对奇怪网络行为的反应。例如,如果客户端 A 是一个视频游戏,而代理 B 向服务器注入一条消息以“加入游戏”,那么您将不得不处理服务器将发送“ok, you've加入游戏”。当客户端收到该消息时,它很可能会忽略它,因为它不知道代理试图代表它加入游戏,并且只会假设服务器出错了。

于 2013-08-13T19:49:19.807 回答