2016-11-18 62 views
1

的Android/Java提供的API插座用於從TCP服務器接收數據,如:如何從Android的socket的inputStream()獲取TCP頭?

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

的事情是,沒有監測你的網絡,你將無法從Java API訪問這些信息。

如果您確實需要TCP標頭http://jnetpcap.com,您可能想嘗試的是查看此庫。

該庫能夠實時讀取數據包。您只需將您收到的數據包與Java中的套接字匹配到庫所接收的正確數據包即可。

+0

從Java/Android的描述來看,它確實無法獲取剝離的頭文件。謝謝。 – frogcd

+0

我剛剛看到您打算在Android上使用它。由於系統的體系結構,該庫可能無法在Android上工作。 –

+0

我寧願使用C來獲取標題信息,C比Java更快地處理內存和指針。 – frogcd