WindowsデスクトップアプリケーションからiPhoneアプリケーションにクライアント/サーバー転送を実装しました。 NSStreamをポーリングモード(同期)で使用してデータを転送します。NSStreamをポーリングモードで使用してアプリケーションを停止させないようにする
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)urlStr, portNo, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[inputStream open];
[outputStream open];
すべてが正常に動作しますが、私はinexistentサーバーまたは切断サーバーやポート番号/ IPアドレスを接続しようとしたときに間違っている、NSOutputStreamオブジェクトのWriteメソッドは、アプリケーションの実行を停止します。
const uint8_t *str = (uint8_t *) [strRichiesta cStringUsingEncoding:NSASCIIStringEncoding];
[outputStream write:str maxLength:strlen((char*)str)];
タイムアウト制御を挿入して管理することはできますか? はいの場合、どうすればよいですか?
NSInputStreamオブジェクトのREADメソッドでも同じ問題が発生すると思います。
誰かが私を助けてくれますか?
ありがとうございますが、私はすでに試してみました...違いはありません。すべての場合に、streamStatus = 1およびstreamError =空文字列。 – Gigi
ええ、streamStatusが1の場合は、使用できないことを意味します。詳細は私の編集を参照してください。 – MechEthan
偉大な、それは完全に動作します!どうもありがとうございました! – Gigi