| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Работа с сетью > передеча данных по сети |
| Автор: #Maestro# 9.6.2009, 16:26 | ||||
| передаётся по сети файл , он приходит пустым - ошибка может быть как со стороны клиента, так и со стороны сервера? Фрагмент кода клиента:
Сервера
прошу помочь. спосибо |
| Автор: LSD 9.6.2009, 18:26 |
| Ты везде заводишь переменную len куда пишешь, сколько байт прочитано. Но дальше совершенно игнорируешь эту информацию. Почему? |
| Автор: #Maestro# 10.6.2009, 08:39 |
| если честно - с переменной len это был пример, найденный в инете. а что с этой переменной следует сделать? подскажите! |
| Автор: GirroKepasso 10.6.2009, 11:58 | ||
| Этот код у тебя компилируется? Код запутаный - какая-то смесь из посимвольного, буферезированого и буферезированого с использованием Scaner , в добавок смешаны работа с блокирующими сокетами(Soket) и асинхронными сокетами (SocketChanel) и с ошибками и возможно не компилируется. Видно , что путаница в методах read . Глянь документацию http://java.sun.com/javase/6/docs/api/java/io/InputStreamReader.html#read() Без параметров read() возвращает прочитаный символ(тип integer), а вот если читать с параметрами read(buf, 0, bufSize) , то метод возвращает количество прочитаных символов, а сами символы записываються в buf. На клиенте:
По сути если что-то и шлется, то это порции по 255 символов "00" (пустой масив buf) Я бы посоветовал глянуть в официальном туториале про потоки ввода/вывода ,про работу с сетью , там есть и примеры. А потом вооружившись переписать код. http://java.sun.com/docs/books/tutorial/essential/io/index.html http://java.sun.com/docs/books/tutorial/networking/sockets/index.htm |
| Автор: #Maestro# 10.6.2009, 13:43 | ||
| извинаюсь, "официальный туториал" это где такое? можно ссылку? был бы очень благодарен! кстати, а вот если как-то так, будет работать?
|