如何使用CocoaAsyncSocket读取数据?(How do I read data using

2019-06-25 06:01发布

我已经创造了我的appDelegate TCP套接字连接 didFinishLaunchingWithOptions方法。 这是比较容易的部分,我已经成功地连接到我的服务器。 我与阅读在我看来,从服务器的数据有很大的困难。 我一直对如何适当地(一步一步地)读取使用CocoaAsyncSocket数据翻翻教程,但我还没有碰到过任何有用的东西来。

这是从我的appDelegate我的代码:

-(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文件的底部:

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

这是比较容易的部分。 我现在需要从服务器读取数据。 我知道某种NSData的 ,或者需要创建NSMutableData对象采取我从服务器读取数据的价值。 我只是一直在寻找点我在正确的方向上的任何教程或文档非常不成功。 有几种不同的读取功能,有的用不同的参数,等等。如果任何人都可以指向我越过这个深度*(我是新手,毕竟= P)*我真的很感激它的资源 - 或者,如果一个简单的方法来实现这一目标有人知道,也不会介意在这里提供的示例代码:d

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

我一直停留在这几个小时,所以任何帮助将是巨大的赞赏。

谢谢!

Answer 1:

这应该工作:

- (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);
    }
}

你也应该实施一些其他的委托方法,例如:

- (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");
}

编辑:如果没记错的话有一些可用的库文件,也有一些例子。



文章来源: How do I read data using CocoaAsyncSocket?