ソケットを使用して、位置の更新を処理するサーバーに接続する、比較的単純な位置ベースのアプリを構築しています。シミュレーターでアプリを実行すると、サーバーへの接続に問題はありませんが、iPhone で実行すると接続に失敗します。これを Macbook Pro で実行していて、ファイアウォールがオフになっています。何か案は?接続してメッセージを送信しようとするアプリのコードは次のとおりです。
- (void) sendToServer: (NSString *)message; {
NSLog(@"Trying to Connect.");
//Establish connection with server
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef) self.ip, self.port, &readStream, &writeStream);
self.inputStream = (__bridge NSInputStream *) readStream;
self.outputStream = (__bridge NSOutputStream *) writeStream;
[self.inputStream setDelegate: self];
[self.outputStream setDelegate: self];
[self.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.inputStream open];
[self.outputStream open];
//Send data to server
NSData *data = [[NSData alloc] initWithData:[message dataUsingEncoding:NSASCIIStringEncoding]];
[self.outputStream write:[data bytes] maxLength:[data length]];
[self.outputStream close];
[self.outputStream removeFromRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
[self.inputStream close];
[self.inputStream removeFromRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
}
ありがとう!