0

iPhoneとPCの間にTCP接続を作成したい。

したがって、2つのCFStreamRefを作成しており、新しいバイトが読み取り可能になったときに呼び出されるオブジェクトセレクターを登録したいと思います。

http://developer.apple.com/library/mac/#documentation/Networking/Conceptual/CFNetwork/CFStreamTasks/CFStreamTasks.html#//apple_ref/doc/uid/TP30000230-62008

上記のリンクから理解したように、このような読み取りストリームの関数を登録できます

CFReadStreamSetClient(myReadStream, registeredEvents, myCallBack, &myContext)

このようにオブジェクトのセレクターを登録できますか?

4

3 に答える 3

0

iPhoneとPC間のTCP接続を確立するには、このリンクを参照してください

http://xmppframework.googlecode.com

実際にMac用に開発されたもので、iPhone版もありますので、一度お試しください。

于 2011-02-01T14:45:01.063 に答える
0

この非同期ソケットネットワークライブラリを確認してください。

http://code.google.com/p/cocoaasyncsocket/

AsyncSocketは、CFSocketおよびCFStreamのオブジェクト指向ラッパーであり、TCPおよびUDPをサポートします。

于 2011-02-01T15:16:56.133 に答える
0

CFReadStreamRefは単なるNSInputStreamです。

-(void) tryToConnect
{
    CFReadStreamRef myReadStream = NULL;
    CFWriteStreamRef myWriteStream = NULL;

    // Create socket.
    CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault,
                                   (CFStringRef) ip_,
                                   port_,
                                   &myReadStream,
                                   &myWriteStream);
    //TODO: check if everything is ok

    readStream_ = (NSInputStream*) myReadStream;
    writeStream_ = (NSOutputStream*) myWriteStream;

    [readStream_ setDelegate:self]; //register to get events
    [readStream_ scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

    [readStream_ open];
    [writeStream_ open];
    [self sendSomething];
}

あなたがもっとしなければならないことはすべて実装ですNSStreamDelegate

于 2011-02-01T16:00:32.233 に答える