2016-07-20 9 views
0

Ich habe ein Problem, eine lokale IP-Verbindung zu überprüfen.Objective-C: Überprüfen Sie die IP-Verbindung

Ich verwende dieses Projekt https://github.com/pbkhrv/SimpleSocketConnection, um eine IP mit einem Port zu überprüfen.

Diese Arbeit gut, wenn ich eine IP-Verbindung hergestellt werden soll:

[[NetworkController sharedInstance] connect:@"192.168.1.100"]; 

Aber wenn ich viele Verbindungen wie das überprüfen möchten:

for(int i=1; i<255; i++) { 
    NSString *ip = [NSString stringWithFormat:@"192.168.1.%d", i]; 
    [[NetworkController sharedInstance] connect:ip]; 
} 

Jede Idee, warum dies nicht funktioniert?

+0

ist ein wenig vage "funktioniert nicht". Was erwartest du zu passieren? Was passiert nicht? Sind ihre Fehlermeldungen? –

+1

Werfen Sie einen Blick [hier] (http://stackoverflow.com/help/how-to-ask) für weitere Informationen zum Stellen guter Fragen. –

+0

Ich versuche, viele Verbindungen zu überprüfen, wenn die Verbindung mit IP existiert oder nicht. –

Antwort

0
@interface ViewController() 
- (void)displayMessage:(NSString*)message; 
@end 


@implementation ViewController 

#pragma mark - Private methods 

- (void)displayMessage:(NSString*)message { 
    // These two came from UITextView+Utils.h 
    [textViewOutput appendTextAfterLinebreak:message]; 
    [textViewOutput scrollToBottom]; 
} 


#pragma mark - Public methods 

- (IBAction)connect:(id)sender { 

    for(int i=1; i<255; i++) { 
     NSString *ip = [NSString stringWithFormat:@"192.168.1.%d", i]; 
     [[NetworkController sharedInstance] connect:ip]; 
    } 


} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Enable input and show keyboard as soon as connection is established. 
    [NetworkController sharedInstance].connectionOpenedBlock = ^(NetworkController* connection){ 
    [textInput setUserInteractionEnabled:YES]; 
    [textInput becomeFirstResponder]; 

     NSLog(@"Connection opened"); 

    [self displayMessage:@">>> Connection opened <<<"]; 
    }; 

    // Disable input and hide keyboard when connection is closed. 
    [NetworkController sharedInstance].connectionClosedBlock = ^(NetworkController* connection){ 
    [textInput resignFirstResponder]; 
    [textInput setUserInteractionEnabled:NO]; 
    [self displayMessage:@">>> Connection closed <<<"]; 
    }; 

    // Display error message and do nothing if connection fails. 
    [NetworkController sharedInstance].connectionFailedBlock = ^(NetworkController* connection){ 
    [self displayMessage:@">>> Connection FAILED <<<"]; 
     NSLog(@"Connection failed"); 
    }; 

    // Append incoming message to the output text view. 
    [NetworkController sharedInstance].messageReceivedBlock = ^(NetworkController* connection, NSString* message){ 
    [self displayMessage:message]; 
    }; 
} 

Dies ist die