Передача файлов через Интернет (с использованием Java) - PullRequest
1 голос
/ 12 апреля 2011

У меня есть приложение Java (Swing), работающее на сервере и клиенте (или предположим, что два разных компьютера

), эти два подключены через Интернет, а не через LAN или WAN. Клиент должен отправить

некоторые данные (около 200 КБ) на сервер. Какой метод предпочтительнее для передачи данных ... Я использовал

TCP через ЛВС, но через Интернет он работает медленно ... Так что я могу использовать UDPдля интернета?Если да, я не

знаю, как разделить мои данные на куски и отправить их, а затем снова собрать данные на сервере.

Я очень благодарен, если предоставлен исходный коддля передачи UDP (объем данных в Java).

заранее спасибо ..

Ответы [ 2 ]

4 голосов
/ 12 апреля 2011

Используйте TCP , он делает именно то, что вам нужно, гораздо лучше, чем вы можете надеяться реализовать самостоятельно.Если у вас низкая пропускная способность, передача в фоновом режиме или просто ожидание - вы ничего не можете с этим сделать.

Считайте ваши данные в байтовых массивах и запишите их целиком - см. DataInputStream.readFully ().Сбросить вывод в конце записи.

Редактировать: Если вы хотите отправить несколько изображений, одно за другим, вы можете выполнить сжатие видео - оно разработано так, чтобы эффективнов этом.

1 голос
/ 12 апреля 2011

Рави уже несколько дней борется с этой проблемой.Теперь ожидается, что UDP принесет помощь, но, конечно, она не будет!

Рави, я дам вам еще несколько советов бесплатно (поскольку вы не проголосовали даже за один из 7 полученных ответов, покатеперь, я думаю, система репутации в StackOverflow является и остается для вас загадкой):

  1. Компьютерные 2D-изображения представляют собой не что иное, как двумерный массив пикселей, то есть цветовые значения (обычно значения int).
  2. В классе BufferedImage есть методы для получения и установки каждого пикселя по отдельности, я вам вчера говорил.
  3. Два изображения одинакового размера различаются, если есть координата x, y, где соответствующий пиксельна одном изображении это не то же самое, что на другом изображении.

Кстати, могу я спросить, какая у вас профессия?

...