1

这是我的objective-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 时它工作得很好。

4

1 回答 1

1

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

self.socket = [[GCDAsyncSocket alloc] initWithDelegate:self.sDelegate delegateQueue:dispatch_get_main_queue()];
于 2013-11-03T06:10:12.600 回答