0

UDP のような非ブロッキング データグラム ソケットの場合、ソケットで write()/send() を呼び出すと、書き込むバイト数が 1000 バイトの場合ですが、頻繁に書き込む場合は、おそらく書き込み (送信) バッファーが十分ではありません。たとえば、200 バイトのバッファしか使用できません。次に、200 バイトまたは 0 バイトを書き込みますか? 返されたエラーは EAGAIN ですか、それとも他のエラーですか?

ソケットの read()/recv() の場合、それらの各呼び出しは正確に 1 つのデータグラムを返すだけですか?

ありがとう!

4

1 に答える 1

1

書き込むバイトが 1000 バイトの場合でも、頻繁に書き込む場合は、書き込み (送信) バッファーが十分でない可能性があります。たとえば、200 バイトのバッファーしか使用できません。次に、200 バイトまたは 0 バイトを書き込みますか?

ゼロ。

返されたエラーは EAGAIN ですか、それとも他のエラーですか?

EAGAINまたはEWOULDBLOCKプラットフォームによって異なります。

read() はどうですか?

完全な UDP データグラムまたはゼロのいずれかを返します。

これは UDP の主要なプロパティです。

于 2013-06-17T08:29:16.447 に答える