Working with TCP Sockets 読書メモ 第3章 クライアントのライフサイクル

目次


クライアントのライフサイクル

  • クライアントの典型的なライフサイクルは以下
  1. create
  2. bind
  3. connect
  4. close
  • create(生成)の部分はクライアントもサーバも同じ

クライアントのbind

  • サーバは大抵の場合、bindを使ってアドレスとポートに紐付けを行う
  • クライアントでは、bindを使うことはまれである
    • bindを使わなかった場合、クライアントソケットはランダムなエフェメラルポートに紐付けられる
    • クライアントは外部からの接続を受け付ける必要が無いので、ポート番号を明示する必要もない

クライアントのconnect

  • connectを呼び出すと、リモートのソケットへの接続が始まる

接続の消失

  • 存在しないサーバや、接続を受け付ける準備ができていないサーバにアクセスすると、クライアントはレスポンス待ちで固まってしまう
  • 最終的にErrno::ETIMEDOUTが発生する

Rubyによるラッパー

  • 生成とbindを1行で

  • ブロック構文を使った記述方法

本章で扱ったシステムコール

  • bind(2)
  • connect(2)

「Working with TCP Sockets 読書メモ 第3章 クライアントのライフサイクル」への1件のフィードバック

コメントを残す