• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaでtcpヘッダを自前で作成する方法)

【Java】TCPヘッダを自作する方法とは?

このQ&Aのポイント
  • JavaでTCPヘッダを自作する方法を探しています。
  • TCPヘッダの作成には、シーケンス番号の設定や特定のフラグの設定などが必要です。
  • Javaのどのクラスや関数を使用してTCPヘッダを作成するか、教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mintia007
  • ベストアンサー率59% (16/27)
回答No.4

たぶんJpcapでできると思いますよ。 http://netresearch.ics.uci.edu/kfujii/jpcap/doc/index.html 見れば分かると思いますが、サンプルも、 http://netresearch.ics.uci.edu/kfujii/jpcap/sample/SendTCP.java

satsukima
質問者

お礼

mintia007さん、ありがとうございます! まさしくこのようなものを探していました。 さっそく使ってみます。

その他の回答 (3)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.3

多くのOSはTCPの実装をOS側が持っているので、そこを変更したいのであれば RAW Socketを使うか、ドライバレベルで変更するしかありません。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/net/socketOpt.html JavaではRAW/ICMP SOCKETSをサポートしていないと書かれていますね。(実装はC/C++で書いてJNIで呼び出すとかしかないようです。) >例えばsynやrstのみ出力するですとか、シーケンス番号を自分で決めてTCPヘッダとデータを作っていくことです。 TCPの偽装が目的でなく、そのような制御を実装したいのであればUDPで可能かと思います。 ちなみにRAW Socketを扱う場合WindowsならAdmin権限、UNIX系ではRoot権限が必要になります。

  • mintia007
  • ベストアンサー率59% (16/27)
回答No.2

jpcapでググってみてください。 もしかしたら出来るかもしれません。 (としか言えませんが・・・)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

ネットワーク通信関係のクラスはjava.netにありますが、Javaではそのレベルでの制御は難しいんじゃないのかな。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/package-summary.html

関連するQ&A

専門家に質問してみよう