返信

尾崎さん,こんにちわ。

プログラミングが具体化してきたのでしょうか,
だんだん,難しい領域に入ってきてますね。

>(1)ソケットプログラミングにおいて、UDPのチェックサムの設定を
>オフにできるとの説明をみたのですが、具体的にはsetsockopt()で
>するのでしょうか?

いやー,これはわかりません。
ゴメンナサイ。

>(2)あと、UDPで一度に送信指定できる最大バイト数(オクテット数)は
>IPヘッダ16ビット65536バイト-IPヘッダ20バイト=65516バイト
>でいいのでしょうか?

UDPヘッダの分も考えなくちゃいけないと思います。
つまり,
 UDPメッセージのユーザデータ長
  =IPメッセージ長-IPヘッダ長-UDPヘッダ長
  =65,535-20-8
ということです。
それから,IPヘッダにオプションフィールドが付加されると
その分IPヘッダ長が長くなりますから,それも考えておいた方がいいでしょう。

>(3)また、TCPでは送信したデータがキューに残っているのですが、
>Javaでいうflushに相当する関数はCのソケットAPIにはないのでしょうか?

えーと...
何かあるはずですね~,あったはずだなぁ...っていう程度しか思い出せません。
これも,ゴメンナサイ。
socketのオプションか,そうじゃなかったら,sendとかrecvとかいう関数のように,
独立した関数でコントロールするのだったかもしれません。
TCP_NODELAYとか,fcntlとか,ioctlとかいったキーワードで,
Google辺りを検索してみると何か出てくるかもしれません。
こんなページも参考になるかも。
http://www.faqs.org/faqs/unix-faq/socket/

でも,この領域になると,ドキュメントを読むだけじゃなくて,
ソースコードを読んでみたり,プログラムでいろいろ試したり
することをお勧めします。

<code>Only

  • 使用できるHTMLタグ: <code>
  • 文字で図を描く場合に<code>と</code>で囲んでください
画像認証
機械的なスパムメッセージ送信を防止するために画像認証を設けています。ご協力ください。
Image CAPTCHA
Enter the characters shown in the image.