首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CocoaAsyncSocket读取数据?

如何使用CocoaAsyncSocket读取数据?
EN

Stack Overflow用户
提问于 2012-06-05 18:23:34
回答 1查看 5.2K关注 0票数 4

我已经在appDelegate didFinishLaunchingWithOptions方法中创建了一个TCP套接字连接。这是容易的部分,我已经成功地连接到我的服务器。在我的视图中,我很难从服务器读取数据。我一直在学习如何使用CocoaAsyncSocket,(一步一步地)读取数据的教程,但是我还没有发现任何有用的东西。

这是我的appDelegate代码:

代码语言:javascript
复制
-(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;
} 

下面是我的连接方法,位于appDelegate文件的底部:

代码语言:javascript
复制
- (void)connect 
{
    [socket connectToHost:@"9.5.3.3" onPort:11005 error:nil];
}

这是最简单的部分。我现在需要从服务器读取数据。我知道需要创建某种、NSData、NSMutableData对象,以获取从服务器读取的数据的值。我只是很不成功地找到任何教程或文档,指出了我的正确方向。有几种不同的读取函数,有些具有不同的参数,等等。如果有人能向我指出一个深入研究这个问题的资源*(毕竟我是个新手,=P)*我会非常感激的--或者如果有人知道实现这个目标的简单方法,并且不介意在这里提供示例代码:D

这是我正在使用的库:CocoaAsyncSocket。我正在使用库AsyncSocket.hAsyncSocket.m

我已经被困在这几个小时了,所以任何帮助都会非常感谢。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-05 18:49:08

这应该是可行的:

代码语言:javascript
复制
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
    NSData *strData = [data subdataWithRange:NSMakeRange(0, [data length])];
    NSString *msg = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];
    if(msg)
    {
        NSLog(@"RX:%@",msg);
    }
}

您还应该实现其他一些委托方法,例如:

代码语言:javascript
复制
- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err
{
    NSLog(@"error - disconnecting");
    //you'd probably want to start reconnecting procedure here...
}

- (void)onSocketDidDisconnect:(AsyncSocket *)sock
{
    NSLog(@"disconnected");
}

- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port
{
    NSLog(@"connected");
}

编辑:如果内存满足我的需要,那么库中有一些文档和一些示例可用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10902710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档