タグ

programmingとsocketに関するlimitususのブックマーク (2)

  • Programming UNIX Sockets in C - Frequently Asked Questions: クライアントとサーバ(TCP/SOCK_STREAM)両方に関する質問

    Previous Next Table of Contents 2. クライアントとサーバ(TCP/SOCK_STREAM)両方に関する質問 2.1 相手側のソケットが閉じられたことをどうやって知ることができますか? Andrew Gierth 氏 ( andrew@erlenstar.demon.co.uk) より: 私の知る限り… 相手側が (SO_LINGER を使ったややこしいことをしないで) close() するか終了したとすると、こちらの read() の呼び 出しは 0 を返すはずです。同じ場合で、write() 呼び出しで何が 起こるかは、もうちょっとわかりづらいです。直後の呼び出し時ではな く、その次の呼び出し時にEPIPE が返るでしょう。 もし相手が再起動するか l_onoff = 1, l_linger = 0 を設定して から閉じたとすると、read() からは(

  • アドレスファミリに依存しないソケットプログラミング

    ソケットプログラミングをする際にアドレスファミリから独立したコードを書いておくことで、 格的に IPv6 環境に移行したときにプログラムの書き換えが不要になるうえ、 IPv4、IPv6 の両方の環境で動作するようになります。 なお、以下の説明は FreeBSD 5.0-RELEASE および gcc 3.2.1 の環境で行っています。 ソケットプログラミング 簡単に IPv4 ソケットプログラミングをおさらいします。 IPv4 ソケットプログラミングで TCP サーバおよびクライアントプログラムを書くと、例えば、以下のようになります。 以下のコードでは、サーバ(sv4.c)は引数で指定されたポートでクライアントからの接続を待ちます。クライアントから接続されると "Hello!" の文字列と改行をクライアントに送信し、接続を終了します。一方、クライアント(cl4.c)は引数で指定された

  • 1