2011-07-27 31 views
3

私は迷子になりました。私は数日前からウェブを検索してきましたが、答えを見つけることができません。私は多かれ少なかれ初心者のソケットプログラマですが、私はそれを理解しています。IPパケットを送信しています

、私は次のことをしたい:

  1. は、(すべての値を設定し、ゼロから)カスタムパケットを作成し

どちらかのJava、C++やC#、それを送信します。このためにライブラリを使用するのは簡単か、それとも私にできるコアクラスはありますか?私はすでにJavaライブラリjnetpcapを試してきましたが、それはたとえ例を実行し、eclipseのインストール・ガイドに従っていても、私にエラーを出すだけでした。

ご協力いただきありがとうございます。

注:これは、Windows

+1

パケット構造を設計する方法を知りたいですか?またはあなたはすでにパケット構造を決めていますが、それを実装する方法はわかりません – Jeeva

+1

あなたのパケットがどのように 'カスタム'なのかを指定していませんが、あなたはこれを望んでいると思います(http://stackoverflow.com/questions/3964013)。/how-send-raw-ethernet-packet-with-c)を使用します。 –

+0

@SemVanmeenenそれはまさに私が必要なものです!私はまだJavaやC++よりもC#を好んでいます。もしあなたがC++やJavaの選択肢があればいいでしょう。 –

答えて

3

jNetPcapだけWinPcapのインストール、WinPcapのにベースのAPIであり、それは動作します:)

を代替として、あなたは(Java用)などJpcapなど他のライブラリを使用しようとすることができますし、SharpPcap(C#の場合)

+0

今、Jpcapを試していますが、別のサーバーにパケットを送信する方法がわかりません。手伝ってくれる? –

+0

[Project](http://www.mediafire.com/?lighjmnm4ez)を見てください.Jpcapを使ってパケットを送信してキャプチャする私のプロジェクトです。 –

+0

私はパケットが到着したかどうか実際にテストする方法がわからないのに、Jpcapが私のために働いたと思います。 –

3

のためだ私は、LinuxのウィンドウとソケットBSDでのWinsockを使用してC++でのソケットを使用していました。背景情報、簡単な例、データパッキングといくつかのユーモア

+0

+1 Beejのガイドには、本当に知っておくべきことがすべてあります。あなたはペーパーバックとしてもそれを購入することができます。 – Valmond

+0

Beejのガイドには、背景情報、簡単な例、データパッキングやユーモアなどの高度なトピックがすべてあります。 – Leon

4

Javaのような高度なトピック:ソケット

Beejのガイドでは、すべてのものを持っています

これは私がhttp://beej.us/guide/bgnet/output/html/multipage/index.html

EDITを発見された最良のガイドでしたhttp://download.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html

Java:Rawソケット

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#:rawソケット

http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx

それはすべての4つの例を見てかなり簡単にする必要があります。

+0

私は両方を見てきましたが、実際にはパケットをゼロから作成することはできません。ご不明な点がありましたら申し訳ありません –

0

ティム、

すべてのパケットは、本体と、任意にトレーラが続く固定長ヘッダを必要とします。固定長ヘッドヘッダは、パケット長(ボディ長+トレーラ長)、タイムスタンプ、ユニークパケットID(大きなパケットを複数の小さなパケットに分割するために使用)などの詳細を持つ必要があります。

受信者は常に固定長ヘッダーを読み取り、パケット長を決定し、残りのパケットを読み取ります。 1バイトの名前などの詳細を送信

、ID、セックス -

ヘッダサイズ:

あなたがなど、単純なパケット構造の

例名などのすべての変数の長さの要素の前にサイズを追加する必要があります

ヘッダ

[8] - 1バイト//サイズ(名前長名+ ID +セックス+)

ボディ

[5] - 1バイト//名前長

[Jeeva] - Nバイト

[1000] - 1バイトID

[0] - 1バイトセックス(0 - 男性、1-女性)

注意:エンディアンに注意する必要があります。説明のためにさらに質問をする

+0

+1と-1は私を笑顔にします。 –

関連する問題