RemoteCurrency サンプル プロジェクトは、 QServer.m (以前は TCPServer.m として知られていた)でこの例を提供します。サンプルコードは、実際には Bonjour 広告を設定するためのものですが、単純な TCP サーバーの場合、その部分は除外できます。
を呼び出して独自の受け入れコールバックでソケットを作成し、を呼び出してポートをバインドしてリッスンし、 を呼び出しCFSocketCreateてから受け入れコールバックのCFSocketSetAddress取得を開始します。CFSocketCreateRunLoopSourceCFRunLoopAddSource
次に、accept コールバックで、 を使用して接続ハンドルから作成NSInputStream/NSOutputStreamペアリングしCFStreamCreatePairWithSocket、入力ストリームのデリゲートを設定して、を呼び出してrecvコールバックの受信を開始しscheduleInRunLoop:forMode:、open両方のストリームでそれらの使用を開始します。
NSInputStreamおよびNSOutputStream抽象化を使用すると(新しいスレッドを作成し、標準の UNIX 関数socket、bind、listen、accept、を呼び出すのでsendはrecvなく)、OSX 上の残りの実行ループ ベースの API と同じ NSRunLoop でネットワーク イベントを簡単に受信できます。