2013-05-21 6 views
-1

GCDAsyncSocket을 사용하여 서버 연결을 테스트하려고합니다.GCDAsyncSockets, 응답 받기

https://github.com/robbiehanson/CocoaAsyncSocket

는 내가 IP + 포트에 연결하고 근무 여부, 메시지를 받게하고 싶습니다.

지금은 지금입니다.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

{응용 프로그램 실행 후 사용자 정의를 위해 // 재정의 포인트.

dispatch_queue_t mainQueue = dispatch_get_main_queue(); 

asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:mainQueue]; 


    NSString *host = @"www.google.de"; 
    uint16_t port = 21; 

    NSError *error = nil; 

    if(![asyncSocket connectToHost:host onPort:port error:&error]) 
    { 
     NSLog(@"ERROR %@!!!", error); 
    } 
    else{ 
     NSLog(@"NO ERROR %@!!!", error); 
    } 

    [asyncSocket writeData:@"DATA" withTimeout:3 tag:0]; 

return YES; 

}

하지만 어떻게 내가이 데이터가 기록 여부되었는지 여부를 확인할 수 있습니까?

는 경우 ([asyncSocket connectToHost는 : 호스트 onPort는 : 포트 오류 : & 오류]!)

은 항상 나에게 오류를 얻을 수 없습니다.

답변

0

socket:didWriteDataWithTag: 대리자 메서드를 구현해야합니다. "GCDAsyncSocket.h"에서 :

/** 
* Called when a socket has completed writing the requested data. Not called if there is an error. 
**/ 
- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag; 

쓰기 시간이 밖으로 다음 연결이 닫혀있는 경우와 위임 방법

- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err; 

가 호출됩니다.

+0

답장을 보내 주셔서 감사합니다. AppDelegate.m에서 메서드를 구현하면 어떻게 메서드를 호출 할 수 있습니까? 나는 위임 방법으로 일한 적이 없다. Greets – shizophren

+0

@shizophren : 다른 방법으로 작동합니다. GCDAsyncSocket 라이브러리가 대리자 메서드를 호출합니다. –

+0

당신은 mor 명확 할 수 있습니까? 방법을 구현해야하는 곳은 어디입니까? 그리고 직접 호출해야합니까, 아니면 GCDAsyncSocket 라이브러리에 의해 자동으로 수행 될까요? 나는 알고 싶다 - 성공, 또는 아닙니다. – shizophren