0

我正在尝试编写一个简单的客户端,它应该使用 CocoaAsyncSocket 通过 TCP 连接到服务器。我有一个 MyClass 类,它被设置为 CocoaAsyncSocket 的委托,并且在构建“Cococa 应用程序”(带有 UI)时,该类按应有的方式工作并连接到服务器,并且正在调用 didConnectToHost 方法。

在职的

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
    self.my = [[MyClass alloc] init];

    [self.my connect];

}

但是,当使用下面的主文件构建控制台应用程序时,它不起作用。我只想启动这个类并让它在后台运行。

不工作

#import <Foundation/Foundation.h>
#import "MyClass.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSLog(@"Hello, World!");

        MyClass * my = [[MyClass alloc] init];

        [my connect];

        while(1) {
            NSLog(@"Nothing");
            sleep(1);
        }
    }
    return 0;
}
4

1 回答 1

3

这将不起作用,因为CocoaAsyncSocket依赖于NSRunLoop运行,而是您sleep(1)不断在主线程上运行。也许将您的无限while循环替换为:

[[NSRunLoop mainRunLoop] run];
于 2013-02-21T13:10:38.747 回答