Потоки ввода / вывода, программирование сокетов, совместимость - PullRequest
0 голосов
/ 08 октября 2011

В настоящее время я делаю программу передачи файлов клиент-сервер в Java, и мой вопрос:

есть ли лучший или подходящий поток ввода / вывода для передачи файлов через сокеты разных программ?

Я не понимаю, что использовать ....

Пока что я просто использую пару bufferedoutputstream / bufferedinputstream, и хотя она работает, кажется, что чего-то не хватает с учетом всех концепций ...

что я действительно хочу знать, это , какой поток я буду использовать для передачи любых файлов через сокет, если я собираюсь передать их с помощью байтового массива

и

если другая программа, не написанная на java (скажем, c ++), должна иметь возможность получать и сохранять отправленный файл ... (включает ли это сериализация ?)

спасибо. :)

1 Ответ

0 голосов
/ 08 октября 2011

Комбинация потоковых / буферных классов не будет иметь значения.Вам нужно выбрать формат, который легко читать / писать одинаково на всех платформах.Например, запись двоичных данных, представляющих числа, труднее (хотя и не невозможна) для различных процессорных архитектур для чтения.

Почему бы не использовать HTTP в качестве протокола?Он в основном отправляет строки простого текста, используя пустые строки в качестве разделителей.Одним из преимуществ этого является то, что вы можете использовать множество существующих инструментов для отладки / анализа вашей системы, например, curl, Fiddler, любой веб-браузер и т. Д. Клиенты (и серверные платформы) уже существуют для тысяч платформ.

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