0
내 IOS 응용 프로그램에서 나는 자바 서버에 사용자 이름과 암호를 보내는 로그인 방법이 있습니다. 문제는 서버가 오프라인 인 경우 응용 프로그램이 작동을 멈추는 것입니다. 그리고 서버가 다시 켜지면 응용 프로그램이 계속됩니다. 데이터를 보내기 전에 서버가 온라인 상태인지 확인하기 위해 애플리케이션에서 처리해야하는 예외 처리가 있습니까?서버가 연결되어 실행 중인지 확인하는 방법은 무엇입니까?
- (void)initNetworkCommunication {
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"XXXXX", 678, &readStream,
&writeStream);
inputStream = (__bridge NSInputStream *)readStream;
outputStream = (__bridge NSOutputStream *)writeStream;
}
-(void) connection{
[self initNetworkCommunication];
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
}
////// thats how I'm sending the username and password
NSString *username= [NSString stringWithFormat:@"%@\n",UsernameTextField.text];
NSString *password=[NSString stringWithFormat:@"%@\n",PasswordTextField.text];
NSLog(@"%@ %@",username,password);
NSData *usernamedata = [[NSData alloc] initWithData:[username dataUsingEncoding:NSASCIIStringEncoding]];
NSData *passworddata = [[NSData alloc] initWithData:[password dataUsingEncoding:NSASCIIStringEncoding]];
[outputStream write:[usernamedata bytes] maxLength:[usernamedata length]];
[outputStream write:[passworddata bytes] maxLength:[passworddata length]];