2016-11-18 3 views
1

Android/Java предоставляет API-интерфейсы сокетов для приема данных от TCP сервера, например:Как получить заголовок TCP из сокета inputStream() в Android?

socket.getInputStream().read(payload); 

Полезная нагрузка данных удаляют заголовок TCP, а также в качестве заголовка IP. Мой вопрос в том, что можно получить заголовок TCP? Благодарю.

+2

См. Этот вопрос/ответ на SO [чтение и запись-tcp-header-options-in-java] (http://stackoverflow.com/questions/14267923/reading-and-writing-tcp- header-options-in-java) Надеюсь, это поможет. –

ответ

2

Вы не можете получить доступ к заголовков TCP, как описано здесь: Reading and writing TCP header (options) in Java

Дело в том, что без мониторинга вашей сети, вы не сможете получить доступ к этой информации из API Java.

Что вы можете попробовать, это посмотреть на эту библиотеку, если вам действительно нужны заголовки TCP http://jnetpcap.com.

Эта библиотека способна считывать пакеты в реальном времени. Вам просто нужно будет сопоставить полученный пакет с вашим сокетом на Java с правильным пакетом, полученным библиотекой.

+0

Из описания Java/Android он действительно не может получить разделенный заголовок. Благодарю. – frogcd

+0

Я только что видел, что вы намерены использовать его на Android. Возможно, библиотека не сможет работать на Android из-за архитектуры системы. –

+0

Я бы предпочел получить информацию заголовка, используя C, который быстрее, чем Java, заботится о памяти и указателях. – frogcd

Смежные вопросы