2009-07-31 5 views
3

私はObjective-C Bonjour/TCPスタックの組み合わせを知っている人がいると、ソケットの管理、サービスのブロードキャストなどを忘れることができ、既存のサービスのリストを取得して接続することができます。次に、サーバー側から特定のクライアントに、またはクライアント側からサーバーにメッセージを送信し続けるだけです。Objective-C Bonjour/TCP Stack

私は、受信したメッセージを推測し、発見されたサービスはデリゲートメソッドを介して私に送信され、残りのダーティーな作業はスタックまで実行されます。

私は自分自身を実装するのは難しいことではないことを認識しています。すでに成果を上げていますが、成熟したフレームワークを使用する方がはるかに理にかなっています。

iPhone対応の場合は別途ポイントがあります。

答えて

4

「自分でやってください」と言います。

質問に記載されている要件が変更されると思わない場合は、ソケットサーバー+ netservicesとソケット+ストリーム用のラッパーのシンプルだが十分にテストされた実装がうまくいくでしょう。それ自体「フレームワーク」は必要ない。

私はtutorialのようなものを実装しており、これまでにいくつかの異なるプロジェクトで使用してきました。あなたは、TCPソケットサーバのための約200行のコードと、Connectionクラスのための約300行(代理人とそのすべて)を見ています。

+0

これは本当に正しい方向に動いてくれました。 あなたのコメント欄にMYNetworkも見つかりました: http://bitbucket.org/snej/mynetwork/wiki/Home 基本的には私が求めているすべてのことを行い、オプションの通信プロトコルも付属しています。 –

0

iPhoneとOSXの両方に組み込まれているNSNetServicesを使用するとどうなりますか?それは、Bonjourサービスの出版/購読のすべての仕事をします。

もちろん、サービスを公開する場合は、通信するソケットが必要です。使用しているプロトコルによっては、着信メッセージを処理する方法(応答などがあるかどうか)そのメッセージングインフラストラクチャーの先験的な知識が必要です。

あなたがそれを書くのにも気にすることができない場合は、その上の何かをホスティングして、すべてのプロトコルHTTPを包括的にホスティングするのはおそらく前進の方法です。あなたは自分のミニウェブサーバーをデバイス上でホストし、HTTPリクエストでその話をすることができます。しかし、サービスの実装は、そのサービスの発見とは正反対です。

+0

本当に私が気にしていたことはありません。私が意味していたことは、すべてのTCP低レベルのものを処理し、Bonjourと結びつける何らかの種類のクラス/フレームワークです(本当に問題ではなく、現時点でNSNetServicesを使用しています)。私はまだ未処理のデータを受け取り、必要に応じて対応します。 私はソケットを初期化したり、ソケットを読み込んだりするなどの心配がなくても、フレームワークでbonjourを使ってサーバーを発見し、通信チャネルを作成するだけです。 おそらくこのようなものが存在します。 –

+0

そうですね、私が言ったように、あなたはプロトコルと通信層に対処するためにHTTPサーバを使用し、それ自体にフックすることができます。開発者のサンプルコードには、同じことをするために適応できるいくつかの例があります。 – AlBlue

0

ConnectionKitがあります。これにより、FTP、HTTP、SFTP、WebDAV、Amazon S3経由の通信がはるかに簡単になります。それはiPhoneを直接サポートしていません。なぜなら、Cocoaはその依存関係の1つですが、移植性があると思います。私はこれがあなたのケースでは役に立たないかどうかはわかりませんが、もしそうならば私はそれをそこに投げ捨てると思っていました。

0

AsyncSocketの場合はどうですか?私は個人的にそれを使用していないが、それはあなたのための完璧な選択と思われる。

+0

これは素晴らしいライブラリですが、まだかなりレベルの低い人がいます。 –

1

iPhone用のAppleのWiTapサンプルアプリケーションをチェックしてください。あなたが求めている構造の多くはすでにそこに存在しています。あなたはiPhone Dev Centerのそれを見つけることができます。

3

あなたはiPhone SDKに含まれているGameKit Frameworkを探しているようですね。 GameKitは、GKSession経由で、あなたが探しているものを正確に提供します。そこに多くのドキュメントがありますが、the official Apple guideは始めるのに最適な場所です。