我创建了一个TCP 套接字连接在我的应用程序中DelegatedidFinishLaunchingWithOptions
方法。这是最简单的部分,我已经成功连接到我的服务器。我在视图中从服务器读取数据时遇到很大困难。我一直在浏览有关如何正确(逐步)使用读取数据的教程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 or NSMutableData需要创建对象来获取我从服务器读取的数据的值。我只是没有成功地找到任何为我指明正确方向的教程或文档。有几种不同的读取函数,有些具有不同的参数等。如果有人可以向我指出一个深入讨论这个问题的资源*(我是一个新手,毕竟=P)*我真的很感激 - 或者如果有人知道实现此目标的简单方法,并且不介意在此处提供示例代码:D
这是我正在使用的库:CocoaAsyncSocket。我正在使用图书馆AsyncSocket.h
and AsyncSocket.m
我已经被困在这个问题上几个小时了,所以任何帮助将不胜感激。
Thanks!
这应该有效:
- (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");
}
编辑:如果我没记错的话,有一些文档以及库中提供的一些示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)