質問

私はここで、この前の質問をします:

が同時に接続しようとする二つの側面をTCP

私は、溶液中で与えられた方法を試みたとのnetcatを使用しながら送信及びエーテルでパケットを盗聴しながら、私は、他の1つの側から「ハロー」の文字列を送信したときには、プッシュフラグセットを有するセグメントで送信されたことが観察されます。

プッシュフラグを設定することを決定誰? TCPセグメントにプッシュまたは緊急フラグを設定するためのルールは何ですか? それは、ソケットAPIを使用してそれを行うことは可能でしょうか?

役に立ちましたか?

解決

PUSHフラグは基本的に、「私は今の終わりだ」と言ってTCPスタックによって使用されています。それだけのデータセグメントが完全にソースによって送信される指示います。

これはそれを行うには、単にTCPスタック/実装であるとして

ユーザランドでそれを示すかを制御する方法は、(あなたのソケットAPI)はありません。緊急フラグとして。

(出典:リチャード・スティーヴンス - TCP / IP示す巻1 に、チャプター20)

他のヒント

あなたはsend()フラグを設定してMSG_OOBを使用して緊急フラグを設定することができます。これが示すように、送信されたデータは、それが正常に単にread()を呼び出し、呼び出し側で受信されることはありませんつまり、アウトオブバンドになります。受信側は信号SIGURGようOOBデータのいくつかの指標を取得する、またはソケットは例外となり、そのような使用select()として確認することができます。

ほとんどの時間、あなたは、緊急フラグを設定する必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top