передача/прием данных через сокеты

266
18 сентября 2017, 02:32

Имеется клиент серверное приложение.Между клиентом и сервером происходит обмен примитивными типами данных, для этого использую Data(Input/Output)Stream.

Имеется ли возможность как то определять какой тип пришел по DataInputStream, чтобы можно было его соответствующий образом считать(readUTF,readInt и т.д)?

Answer 1

Если я правильно понял суть вопроса...

Сокет, лишь точка обмена данными приложения, по транспортному уровню, транспортному уровню в свою очередь, совершено не интересно что за данные он передаёт. Интерном это лишь прикладному уровню, на котором находится ваше приложения, соотвественно, если вам надо как-то работать с данными, все проверки, валидацию, и прочие, вы должны делать на прикладном уровне, то есть в вашем приложении.

Соотвественно обрабатывайте данные, на самом приложении, используйте готовые приложения, или примените какой-то прикладной протокол.

Answer 2

Посмотрите в сторону grpc фрэймворка от гугла. Это по сути надстройка над http2. Protobuf протокол подразумевает строгую типизацию данных и строгое описание клиент серверного API (proto-file). Реализована генерация кода. "Из коробки" синхронные/асинхронные вызовы и потоковая работа с данными (стрим). С практической стороны, сирилизация/десирилизация данных осуществляется на уровне работы самого протокола. В случае, если данные дескриптором не парсятся, будет транспортная ошибка, во всех остальных случаях вы будете иметь строго типизированные данные.

READ ALSO
Как удобнее задать стили

Как удобнее задать стили

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

437
Глюк или ошибка в верстке при отображения сайта на айфоне? [требует правки]

Глюк или ошибка в верстке при отображения сайта на айфоне? [требует правки]

На сайте есть всплывающие окна с формой (4 инпута)По каким то непонятным причинам и только на айфоне, при фокусе inputа устройство приближает...

260
Как удалить от объекта связь с плагином?)

Как удалить от объекта связь с плагином?)

У меня есть селектор $("portfolio") По умолчанию после загрузки страницы проверяется ее ширина

166
Не срабатывает триггер при наведении на кнопку WPF

Не срабатывает триггер при наведении на кнопку WPF

Имеется "стандартный" стиль для кнопок закрыть/свернуть/развернуть:

361