CocoaAsyncSockets在应用启动时创建连接,但从视图读取/写入

时间:2012-06-05 14:56:03

标签: iphone ios sockets cocoaasyncsocket

我正在使用CocoaAsyncSockets库在我的应用程序中创建一个tcp套接字连接。目前,我已经通过在appDelegate.m文件中的didFinishLaunchingWithOptions方法中打开套接字连接成功创建了一个连接。我的代码看起来像这样:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  (NSDictionary *)launchOptions
{
    socket = [[AsyncSocket alloc] initWithDelegate:self];
    [self connect];

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]    autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[tekMatrixViewController alloc]     initWithNibName:@"tekMatrixViewController" bundle:nil] autorelease];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

这是我的连接方法:

- (void)connect 
{
    [socket connectToHost:@"9.5.3.6" onPort:11005 error:nil];
}

现在,我一直在努力的是如何在我的视图中使用读/写方法而无需重新建立连接。

  • 我在应用程序启动时建立了一个tcp套接字连接
  • 我在didFinishLaunchWithOptions方法中打开套接字,以便我可以创建连接并在我的应用运行的整个时间保持连接
  • 我不知道如何从我的观点读取/写入服务器
  • 我是socket / iOS开发的新手,所以我希望找到最简单的解决方案

我很感激我能得到的任何帮助。我对iOS仍然很陌生,仍然在学习语法,所以任何人都可以提供的细节越多,我就越好。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

AsyncSocket附带了这种写作方法:

- (void)writeData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag;

读取方法的几种变体,这里是一个:(更多来自库的头文件)

- (void)readDataWithTimeout:(NSTimeInterval)timeout tag:(long)tag;

您应该从已下载AsyncSocket库的同一网站获取示例代码,以了解它们的使用方式。要记住的一件事是这些方法是异步操作。