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