2013-08-13 5 views
0

Теория:
Предположим, у меня есть приложение A, написанное на Java, которое использует поток TCP для взаимодействия клиент/сервер (он находится на стороне клиента в связи). Теперь, как эксперимент, я пытаюсь создать приложение B, написанное на VB.NET, которое будет служить прокси для сетевого потока приложения А, позволяя приложению B читать и записывать в поток.Доступ к внешнему потоку TCP

Возможно ли вообще получить доступ к сетевому потоку из другого приложения, также учитывая границы языка?

+0

TCP - TCP, язык не имеет значения. Вы можете написать прокси на любом языке, так что я не вижу проблемы. –

ответ

0

Ваш вопрос довольно расплывчатый, но если вы спрашиваете о возможности создания прокси-сервера, то да, это возможно. Язык не имеет значения, но интерфейс (способ кодирования содержимого в потоке). Например, Java, как правило, сериализует вещи в поток с использованием большого эндиана (старший байт каждой последовательностью байтов, отправленной первым), тогда как .NET использует маленький конечный (младший байт каждой последовательности байтов, отправленной первым). Опять же, если вы знаете, как данные фактически закодированы в эти потоки, вы можете написать достойный прокси-сервер. Если все, что ваш прокси-сервер будет делать, это передавать данные, не заботясь о том, что такое данные, тогда вы можете просто прочитать байт из одного потока и записать его в другой. Но если вы на самом деле читаете значения (целые числа, строки, рисунки и т. Д.), Тогда вы будете иметь дело с проблемами, связанными с контентом, поскольку считыватели потоков по умолчанию Java и VB.NET по-разному считывают и записывают целые числа и т. Д.

Будут некоторые осложнения, если вы хотите фактически редактировать данные, а не просто передавать их. Вам придется иметь дело с реакциями клиента и сервера на странное поведение сети. Например, если клиент A является видеоигрой, а Proxy B вводит сообщение на сервер, чтобы «присоединиться к игре», тогда вам придется иметь дело с тем фактом, что сервер отправит «хорошо, вы присоединился к игре ». Когда клиент получает это сообщение, он, скорее всего, проигнорирует его, потому что он не знал, что прокси попытается присоединиться к игре от своего имени и просто предположит, что сервер допустил ошибку.