|
5 / 4 / 1
Регистрация: 15.12.2015
Сообщений: 255
|
|||||||||||
Опять сокеты и передача строк13.02.2018, 20:30. Показов 6772. Ответов 9
Метки нет (Все метки)
Здравствуйте!
Помогите разобраться в плане передачи текста с помощью сокетов. Соорудил простейшие сервер и клиент и кидаю строку от клиента к серверу. Сервер:
1. os.writeBytes("123"); 2. os.writeUTF("123"); 3. os.writeChars("123"); В итоге сервер принимает: 1. Как отправили, так и приняли: "123" 2. Принимаем строку, но перед ней какие-то левые символы: " 123" 3. Принимаем строку, но перед каждым символом пробел: " 1 2 3" Собсно вопрос: почему во втором и третьем случае строка модифицируется и как собственно говоря правильно надо передавать строку ? Заранее благодарен за внимание!))
0
|
|||||||||||
| 13.02.2018, 20:30 | |
|
Ответы с готовыми решениями:
9
хоть убейте а опять сокеты Сокеты: передача файлов. С Сокеты: передача данных |
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|||||||||||||
| 13.02.2018, 21:01 | |||||||||||||
|
В третьем варианте клиент передаёт char'ы как есть в их Java'вском представлении, в виде двух байт UTF-16, сервер же читает с дефолтной кодировкой операционной системы, которая, в случае Windows — однобайтная CP-1251. Во втором варианте не очень понятно, но, видимо, клиент передаёт в UTF-8 с BOM (byte-order-mark), который и идёт в начале. По-хорошему, поток UTF-8 байт не должен содержать BOM, т.к. BOM для UTF-8 не имеет смысла и это плохая практика.
1
|
|||||||||||||
|
85 / 67 / 25
Регистрация: 09.10.2017
Сообщений: 208
|
|
| 13.02.2018, 21:07 | |
|
на stackoverflow про writeUTF
цитата: "Записывает два байта информации о длине в выходной поток, за которым следует модифицированное представление UTF-8 каждого символа в строке s."
1
|
|
|
5 / 4 / 1
Регистрация: 15.12.2015
Сообщений: 255
|
||
| 13.02.2018, 21:09 [ТС] | ||
|
Только наверно не writeBytes, а просто write ? Ибо на writeBytes в таком представлении ide ругаецца)
0
|
||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|||||||||||||
| 13.02.2018, 21:53 | |||||||||||||
Сообщение было отмечено bobo96 как решение
Решение
И зачем ты на клиенте оборачиваешь output stream в DataOutputStream, при том, что на сервере не используешь DataInputStream?
Добавлено через 43 секунды
0
|
|||||||||||||
|
5 / 4 / 1
Регистрация: 15.12.2015
Сообщений: 255
|
||
| 13.02.2018, 22:04 [ТС] | ||
|
Такое возможно в принципе ?
0
|
||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 13.02.2018, 22:37 | |
|
1
|
|
|
1 / 1 / 0
Регистрация: 10.04.2016
Сообщений: 7
|
||||||
| 14.03.2018, 13:46 | ||||||
|
Здравствуйте. Нужна помощь в реализации передачи файлов от клиентов серверу. Реализация на netty 4.1. Получилось реализовать чат, как его переделать для передачи файлов любого объема?
Север:
Буду благодарен за любые идеи...
0
|
||||||
|
1 / 1 / 0
Регистрация: 10.04.2016
Сообщений: 7
|
||||||||||||||||
| 14.03.2018, 13:57 | ||||||||||||||||
|
В дополнение коды остальных файлов
Обработчик на сервере (ServerHandler)
Обработчик на клиенте (ClientHandler)
0
|
||||||||||||||||
|
1 / 1 / 0
Регистрация: 10.04.2016
Сообщений: 7
|
|||||||||||||||||||||
| 16.03.2018, 16:45 | |||||||||||||||||||||
|
Вопрос решен. Привожу код для тех кто столкнулся с подобной проблемой
Если на ваш счет код корявый сильно не ругать ![]() Сервер:
0
|
|||||||||||||||||||||
| 16.03.2018, 16:45 | |
|
Помогаю со студенческими работами здесь
10
передача сообщений через сокеты Передача файлов через сокеты
Передача переменных через Сокеты!
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|