Помогите в настройке удаленного сервера для двух приложений - PullRequest
0 голосов
/ 16 марта 2011

Итак, я хочу, чтобы одно приложение отправляло данные другому через Wi-Fi. Поскольку IP-адреса являются частными, для устройств, которые используются для запуска приложений, я подумал, что мне нужно сделать что-то подобное, чтобы два приложения взаимодействовали:

App1 <------> удаленный_сервер <-------> App2

Мне нужна помощь, чтобы настроить сервер, который будет просто получать данные из App1 и пересылать их в App2. Я полагаю, я должен использовать сокеты для обоих приложений, я должен использовать 2 сокета? Как передать данные, полученные от app1, в app2?

Я буду использовать Java.

Ты заранее.

1 Ответ

0 голосов
/ 16 марта 2011

Да, два сокета были бы правильными (если вы не хотите туннелировать через HTTP или подобное).

public void proxy() {
    ServerSocket s = ...;
    Socket app1 = s.accept();
    Socket app2 = s.accept();
    InputStream app1Input = app1.getInputStream();
    InputStream app2Input = app2.getInputStream();
    OutputStream app1Output = app1.getOutputStream();
    OutputStream app2Output = app2.getOutputStream();

    pipeInToOut(app1Input, app2Output);
    pipeInToOut(app2Input, app1Output);
}

public void pipeInToOut(final InputStream in, final OutputStream out) {
    new Thread() { public void run() {
       byte[] buffer = new byte[2000];
       int r;
       while((r = in.read(buffer) > 0) {
          out.write(buf, 0, r);
       }
    }}.start();
}

Добавьте некоторые обработки исключений, закрытие потока и логику: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...