質問

WindowsデスクトップアプリケーションからiPhoneアプリへのクライアントサーバーを実装しました。ポーリングモード(同期)でNSStreamを使用してデータを転送します。

CFReadStreamRef readStream;
CFWriteStreamRef writeStream;

CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)urlStr, portNo, &readStream, &writeStream);

inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;

[inputStream open];
[outputStream open];

すべては正常に動作しますが、存在するサーバー、切断されたサーバー、またはポート番号/IPアドレスを接続しようとすると、nsoutputStreamオブジェクトの書き込み方法はアプリケーションの実行を停止します。

const uint8_t *str = (uint8_t *) [strRichiesta cStringUsingEncoding:NSASCIIStringEncoding];
[outputStream write:str maxLength:strlen((char*)str)]; 

タイムアウト制御を挿入してメソッドを管理することは可能ですか?はいの場合、どうすればよいですか?

nsinputStreamオブジェクトの読み取り方法でも同じ問題が発生すると思います。

誰かが私を助けてくれませんか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top