GCDAsyncSocket - 如何连接它?

时间:2013-11-03 05:11:00

标签: ios objective-c sockets client gcdasyncsocket

这是我的目标-c代码...我已经尝试了注释掉的代码,但没有运气。我只想把它连接起来。

@implementation ViewController
- (void)viewDidLoad
{
    [super viewDidLoad];

    //get socket connecting...
    NSError *err = nil;

    uint16_t thePort = htons(1234);

//    struct sockaddr_in ip;
//    ip.sin_family = AF_INET;
//    ip.sin_port = htons(thePort);
//    inet_pton(AF_INET, "192.168.2.5", &ip.sin_addr);
//    
//    NSData* host = [NSData dataWithBytes:&ip length:ip.sin_len];
//    
//    if(![self.socket connectToAddress:host error:&err]) {
//        NSLog(@"Failed to connect... %@", err);
//    }


    if(![self.socket connectToHost:@"192.168.2.5" onPort:thePort error:&err]) {
        NSLog(@"Failed to connect %@", err);
    }
    // Do any additional setup after loading the view, typically from a nib.
}

当我跑步时,这就是我得到的......

2013-11-02 23:02:10.404 bonfire.alpha0.0[3892:70b] Failed to connect (null)

在服务器端,我使用了一个简单的echo-server实现(可以找到https://github.com/zappala/python-networking-and-threading/blob/master/echo-server/echoserver.py)。我知道客户端和服务器之间的物理连接(192.168.2.5)是好的,因为当我从客户端计算机运行echoclient.py时它工作正常。

1 个答案:

答案 0 :(得分:0)

好的,我发现了这个错误,非常吵闹哈哈。我没有正确启动GCDAsyncSocket。这是启动它的正确代码。

self.socket = [[GCDAsyncSocket alloc] initWithDelegate:self.sDelegate delegateQueue:dispatch_get_main_queue()];