sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

NSStreamでクライアントとしてTCPソケット通信を行う その2 クラス設計

その1の続き

手順はわかったので、実際に通信をするためのヘルパークラスを設計します。

delegateで非同期な通信が用意されているのは良いのですが、呼び出す側としては処理が面倒です。呼び出し元をGCDの並列キュー等の非同期で動かす事を前提として、ヘルパークラス側は全て同期(処理が完了するかエラーで失敗するまでは返らない)メソッドとなるように実装していきます。

クラスに必要なメソッド群はこんな感じ?

  • 接続先ホスト情報をともなった指定イニシャライザ
  • ソケットをオープン
  • 指定されたサイズのバイトを読み込む
  • 指定されたデータを書き込む
  • ソケットをクローズする
  • エラー事由を取り出す
  • ファイナライザ

メンバ変数はこんなもん?

  • ホスト情報(CFHostRef)
  • ポート番号 (unit16_t)
  • 読み込みストリーム(NSInputStream)
  • 読み込みデータバッファ(NSMutableData)
  • 書き出しストリーム(NSOutputStream)
  • 書き出しデータバッファ(NSData)

readonlyのプロパティとして

  • ホスト名(NSString)
  • ポート番号
  • 接続状況

あたりがあると便利かも?

ということで、うまく実装できるのかはわかりませんが、ドキュメンド代わりに記事を書きながらコーディングを開始します。

その3へ