2011-07-27 82 views
3

我迷路了。我一直在網上搜索了好幾天,但我找不到答案。我或多或少是一個初學者套接字程序員,但我確實瞭解它。發送IP數據包

我想要做以下的事情:

  1. 創建一個自定義數據包(從零做起,設定每個值)
  2. 發送

無論是JAVA,C++或C#。是否有一個易於使用的庫,或者是否有一個核心類,允許我?我已經嘗試過Java庫jnetpcap,但是這隻會給我提供錯誤,即使在運行示例和遵循eclipse安裝指南時也是如此。

任何幫助非常感謝!

注:這是針對Windows

+1

您是否想知道如何設計數據包結構?或者你已經決定了數據包的結構,但不知道如何實現它 – Jeeva

+1

你不指定如何'定製'你的數據包,但我想你想[this](http://stackoverflow.com/questions/3964013 /如何-發送-原始以太網數據包與-C)。 –

+0

@SemVanmeenen是的,這正是我需要的!我仍然更喜歡Java或C++而不是C#,所以如果你有任何C++或者Java替代品,那麼我會爲此付出努力,謝謝! –

回答

3

jNetPcap是基於WinPcap的一個API,只需要安裝WinPcap的,它會工作:)

作爲替代,你可以嘗試使用其他庫,如Jpcap(用於Java)和SharpPcap(對於C#)

+0

我正在嘗試Jpcap,但我不知道如何將數據包發送到另一臺服務器。你能幫忙嗎? –

+0

看看[Project](http://www.mediafire.com/?lighjmnm4ez),這是我使用Jpcap發送和捕獲數據包的項目。 –

+0

我認爲Jpcap爲我工作,即使我不知道如何才能真正測試數據包是否到達。 –

3

我已經在Linux窗口和插座BSD用winsock用於C++的插座。

這是我找到的最好的指南http://beej.us/guide/bgnet/output/html/multipage/index.html

編輯: Beej指南擁有一切:背景資料,簡單的例子,先進的主題,如數據打包和一些幽默

+0

+1爲Beej的指南,它真的有你需要知道的一切。你也可以把它作爲平裝本購買。 – Valmond

+0

Beej的指南有一切:背景信息,簡單的例子,數據包裝和一些幽默等高級主題 – Leon

4
+0

我已經看過兩個,但我不認爲他們會允許我真的從頭開始構建數據包。對不清楚的問題 –

0

添,

每個分組需要固定長度的報頭,接着通過身體和任選的拖車。固定的頭部長度頭部應該具有諸如分組長度(體長+尾部長度),時間戳,唯一分組ID(用於將大分組分成多個小分組)的細節。

接收器將總是首先讀取固定長度的報頭並確定數據包長度並讀取數據包的其餘部分。

需要每可變長度的元件,如姓名等簡單數據包結構的

實施例之前,將大小追加:

標題大小 - 1個字節

發送的細節,如姓名,ID,性別

部首

[8] - 1個字節//大小(名稱長度+名稱+編號+性別)

[5] - 1個字節//名稱長度

[Jeeva] - N字節

[1000] - 1字節ID

[0] - 1字節性別(0 - 男性,1-女性)

注意:您需要小心Endianess。請求進一步的問題以進行澄清

+0

+1和-1讓我微笑。 –