0

iPad から単純な TCP ソケット接続を確立しようとしています。

シミュレーターを使用して一連のコードを実行し、正常に動作しました。

しかし、このコードを iPad で実行すると失敗します。

コードはこちら...

CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.1.10", 19997, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;

[inputStream setDelegate:self];
[outputStream setDelegate:self];

[inputStream open];
[outputStream open];

コードは [inputStream open] でハングします。次に、エラーが発生します。

    The Operation Couldn't be completed.  Operation timed out.  Code 60.

ここで簡単なものが欠けていますか?iOSの権限か何か?シミュレータで機能するのはなぜですか? iOS開発初心者です。

ご協力いただきありがとうございます!

4

1 に答える 1

1

コードを iPhone でテストしたところ、問題なく動作しました。ただし、接続の「反対側」に問題がある可能性があります。

www.google.com ポート 80 で同じコードをテストする必要があります。

また、別のプロジェクトまたはプロジェクト内の別の「ポイント」でテストすることもできます。「コードを呼び出す場所」に問題がある可能性があります

また、すべてを自分で作成するのではなく、これらの接続に既存のフレームワークを使用することも検討する必要があります。

これには Google Async Sockets を使用します。

于 2013-04-08T18:20:54.273 に答える