我迷路了。我一直在網上搜索了好幾天,但我找不到答案。我或多或少是一個初學者套接字程序員,但我確實瞭解它。發送IP數據包
我想要做以下的事情:
- 創建一個自定義數據包(從零做起,設定每個值)
- 發送
無論是JAVA,C++或C#。是否有一個易於使用的庫,或者是否有一個核心類,允許我?我已經嘗試過Java庫jnetpcap,但是這隻會給我提供錯誤,即使在運行示例和遵循eclipse安裝指南時也是如此。
任何幫助非常感謝!
注:這是針對Windows
我迷路了。我一直在網上搜索了好幾天,但我找不到答案。我或多或少是一個初學者套接字程序員,但我確實瞭解它。發送IP數據包
我想要做以下的事情:
無論是JAVA,C++或C#。是否有一個易於使用的庫,或者是否有一個核心類,允許我?我已經嘗試過Java庫jnetpcap,但是這隻會給我提供錯誤,即使在運行示例和遵循eclipse安裝指南時也是如此。
任何幫助非常感謝!
注:這是針對Windows
我已經在Linux窗口和插座BSD用winsock用於C++的插座。
這是我找到的最好的指南http://beej.us/guide/bgnet/output/html/multipage/index.html
編輯: Beej指南擁有一切:背景資料,簡單的例子,先進的主題,如數據打包和一些幽默
的Java:插座
http://download.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html
Java:原始插座
http://www.savarese.com/software/rocksaw/
C#的TcpClient
http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient%28v=vs.71%29.aspx
C#:原始套接字
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx
它應該是相當容易查找所有四個例子。
我已經看過兩個,但我不認爲他們會允許我真的從頭開始構建數據包。對不清楚的問題 –
很簡單,如果你這樣做java。
初學者。 http://download.oracle.com/javase/tutorial/networking/datagrams/clientServer.html
添,
每個分組需要固定長度的報頭,接着通過身體和任選的拖車。固定的頭部長度頭部應該具有諸如分組長度(體長+尾部長度),時間戳,唯一分組ID(用於將大分組分成多個小分組)的細節。
接收器將總是首先讀取固定長度的報頭並確定數據包長度並讀取數據包的其餘部分。
需要每可變長度的元件,如姓名等簡單數據包結構的
實施例之前,將大小追加:
標題大小 - 1個字節
發送的細節,如姓名,ID,性別
部首
[8] - 1個字節//大小(名稱長度+名稱+編號+性別)
體
[5] - 1個字節//名稱長度
[Jeeva] - N字節
[1000] - 1字節ID
[0] - 1字節性別(0 - 男性,1-女性)
注意:您需要小心Endianess。請求進一步的問題以進行澄清
+1和-1讓我微笑。 –
您是否想知道如何設計數據包結構?或者你已經決定了數據包的結構,但不知道如何實現它 – Jeeva
你不指定如何'定製'你的數據包,但我想你想[this](http://stackoverflow.com/questions/3964013 /如何-發送-原始以太網數據包與-C)。 –
@SemVanmeenen是的,這正是我需要的!我仍然更喜歡Java或C++而不是C#,所以如果你有任何C++或者Java替代品,那麼我會爲此付出努力,謝謝! –