IOS:如何在断开连接后重新连接到服务器(PC)

我有两个Applaction,一个是客户端( IOS设备 ),另一个是服务器( PC设备 )。 当我运行客户端时,它将连接到服务器,当我断开服务器时,它将显示Disconnected。

问题:如何在断开连接后重新连接服务器?

这是我在客户端(IOS设备)方面的代码

-(void)viewDidLoad{ [super viewDidLoad]; NSString *ipAddressText = @"192.148.211.42"; NSLog(@"Setting up connection to %@ : %i", ipAddressText, 111); CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (__bridge CFStringRef) ipAddressText, 111, &readStream, &writeStream); messages = [[NSMutableArray alloc] init]; [self open]; } - (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent { NSLog(@"stream event %lu \n ", streamEvent); switch (streamEvent) { case NSStreamEventOpenCompleted: NSLog(@"Stream opened"); _connectedLabel.text = @"Connected"; break; case NSStreamEventHasBytesAvailable: if (theStream == inputStream) { uint8_t buffer[1024]; NSInteger len; while ([inputStream hasBytesAvailable]) { len = [inputStream read:buffer maxLength:sizeof(buffer)]; if (len > 0) { NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding]; if (nil != output) { NSLog(@"server said: %@ \n ", output); [self messageReceived:output]; } } } } break; case NSStreamEventHasSpaceAvailable: NSLog(@"Stream has space available now"); break; case NSStreamEventErrorOccurred: NSLog(@"%@\n",[theStream streamError].localizedDescription); break; case NSStreamEventEndEncountered: [theStream close]; [theStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; _connectedLabel.text = @"Disconnected"; NSLog(@"close stream"); break; default: NSLog(@"Unknown event"); } } - (void)open { NSLog(@"Opening streams."); outputStream = (__bridge NSOutputStream *)writeStream; inputStream = (__bridge NSInputStream *)readStream; [outputStream setDelegate:self]; [inputStream setDelegate:self]; [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [outputStream open]; [inputStream open]; _connectedLabel.text = @"Connected"; } - (void)close { NSLog(@"Closing streams."); [inputStream close]; [outputStream close]; [inputStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [outputStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [inputStream setDelegate:nil]; [outputStream setDelegate:nil]; inputStream = nil; outputStream = nil; _connectedLabel.text = @"Disconnected"; } -(void)Reconnect{ // Code here }