TCP/IPでのソフト開発に関して
現在indy9とDelphiを使用してクライアントとサーバーソフトを作成しています。
サンプルのチャット等は問題なく動いています。
これを元に、indyコンポーネント等を使用してTCP/IPのヘッダ部分を触りたいのですが良く判りません。
例 IdTCPClient1.Host := '127.0.0.1'; // localhost
IPをセットする場合はこのように成ると思います
上記のような感じで、TCP/IPのフレームサイズを変更したり、Paddingデータを追加したりしたいのですが、方法が判りません。
例えば IdTCPClient1.PaddingData:='なになに';等方法が無いでしょうか。
宜しくお願いします。
TCPプロトコル
http://www.picfun.com/lan19a.html
TCPヘッダ
http://www.asahi-net.or.jp/~aa4t-nngk/ipttut/output/tcpheaders.html
MTU, MSS, RWIN
http://www.infraexpert.com/info/5adsl.htm
フレームサイズを変えたい とか Paddingデータを追加したい
ってどういうこと?
フレームサイズを変えたいと言われても
ドライバの設定を変更するぐらいしかありません。
フレームサイズを超えたデータを送受信した場合は
自動的に分割されます。
これはindy9でもWinSockAPIでも同様です。
PaddingDataとかが必要になる場面がよくわかりません。
ルーターを作るのですか?
あとYahoo知恵袋でも質問されているみたいですね・・・
皆さん回答有難うございます。
知恵袋に関しては、2重投函に成ってしまいました。
どちらかでヒントでも判ればと書き込んでしまいました。
フレームサイズに関してては、ヘッダーを触れることが出来ればと思い書いてしまいました。
教えて頂きたいのは、PaddingDataの追加方法が知りたいのです。
宜しくお願いします。
どうも話が通じてないようですね。
リンク先の情報は閲覧されましたか?
「PaddingDataを追加」というのは意味不明です。
IPヘッダは32ビット長なので
32ビットではない要素を埋めているのがPaddingです。
ヘッダの最後の要素「Options」が25bitなので
32bitにするために7bit分のPaddingがあるわけです。
これを増やすとはどういうことでしょうか?
という質問の返答をお願いしているわけです。
そもそもTCPヘッダを自分で加工したりするのは困難と思われます。
(そういうコンポーネントやドライバあったっけ?
あったらこちらが教えて欲しいぐらい)
そしてそれらがどのような理由で必要なのかがわかりません。
・パケットキャプチャを作りたい
・パソコンをルーターにしたい
ちょっと思いつきません。
take さん、回答有難うございます。
TCP/IPに関しては初心者ということで、質問が支離滅裂で申し訳有りません。
教えて頂いたアドレスなどは、こちらで調べている間に目を通していました。
実際には、とある機械がありそれの通信データにPADDINが付いていたもので、
こちらからデータを送ると有る程度返事はするのですが、途中で通信が途切れてしまいました。データの数が有っていないのかと思い。ワイヤーシャークなどで調べていたら、こちらからの送信にPADDINGデータがついていないため最終的に切断されるのかと思ったしだいです。
もう少しTCPIPに関して勉強させて頂きます。
有難うございました。
その機械と正常にやりとりする環境とかサンプルはありますか?
資料や仕様書を片手にやりとりするのも良いですが
正常な送受信がどういう内容なのかを
モニタすることができればおよそ解決できます。
言われている内容からするとTCP/IPあるいはUDP/IPサーバーソケットのある
機械と送受信するプログラムを組まれているようですので
Indyで良いかと思われます。
途中で通信が途絶えるのは送受信内容に問題があるようですね。
以前体験した現象としては
相手側が「エコーバック」機能を持っており
そのエコーバックを待たずに送信すると通信が途絶える
というのがありました。
エコーバックは、こちらが Aを送れば Aが帰ってくるというものです。
参考になれば幸いです。
take さん
こんばんは。
回答有難うございます。
データに関しては一度上の物と相談させて頂きます。
ご親切にお声がけをして頂きましたが、一度相談させて頂き問題ないようでしたらお願いします。
わがままな回答で申し訳有りませんが、宜しくお願いします。
siro さん
回答が送れて申し訳有りません。
体の悪く通院していたもので。
データに関しては申し訳有りませんが、出すことが出来ません。
せっかくお話頂きましたが申し訳ないです。
もうしばらく自分なりにがんばってみます。
有難うございました。
訂正。
あて先を間違っていました。
take さん
回答が送れて申し訳有りません。
体の悪く通院していたもので。
データに関しては申し訳有りませんが、出すことが出来ません。
せっかくお話頂きましたが申し訳ないです。
もうしばらく自分なりにがんばってみます。
有難うございました
ツイート | ![]() |