CocoaAsyncSocket을 사용하여 TCP 소켓 연결을 만들었으며 didReadData를 수행하려고 할 때마다 공백이 다시 나타납니다. 나는 breakpoint를 설정하고 디버깅을 시도 할 때 "msg"값이 @ ""이라는 것을 알았다.CocoaAsyncSocket을 사용하여 데이터를 읽으면 공백이 반환됩니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSData *data = nil;
// Initialize socket object and make it a delegate. Then call the delegate methods.
socket = [[AsyncSocket alloc] initWithDelegate:self];
[self connect];
[self onSocket:socket didConnectToHost:@"9.5.8.6" port:11005];
[self onSocket:socket didReadData:data withTag:1]; // tags COULD be #defined *******
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;
}
그리고 여기 내 onSocket입니다 : : 소켓 didReadData : 데이터 withTag : 방법 :
이 내 appDelegate.m는 모습입니다
- (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);
if(msg == nil)
{
NSLog(@"msg is all Blanks");
}
}
else
{
NSLog(@"Fail");
}
}
주,이 방법에서 방법이다 CocoaAsyncLibrary. 제대로 메소드를 호출하는지 또는 올바른 인수를 전달하지 않는지, 또는 무엇인지 알 수 없습니다. 나는 응용 프로그램을 실행하면
, 내 콘솔에 표시되는 모든은 다음과 같습니다
2012-06-06 11:44:00.434 tekMatrix[1378:f803] connected
2012-06-06 11:45:14.312 tekMatrix[1378:f803] RX:
모든 모든 도움은 대단히 감사합니다.
감사합니다. onSocket
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
socket = [[AsyncSocket alloc] initWithDelegate:self];
NSError *error = nil;
if (![socket connectToHost:@"199.5.83.63" onPort:11005 error:&error])
{
NSLog(@"Error connecting: %@", error);
}
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;
}
지금 내가 연결되어있어 볼 수 있어요,하지만 난 아직도 이해 아니에요 : 여기에 편집
내가 지금 내 didFinishLaunchingWithOptions 방법이 무엇인지입니다 : 소켓 didReadData : 데이터 withTag : 메서드가 호출되지 않습니다. 이것에 대한 도움은 많이 감사 할 것입니다. 감사!
DDLogError 란 무엇입니까? 자신의 로깅 기능? –
오, 아니, 유용한 도구 모음 인 [Lumberjack] (https://github.com/robbiehanson/CocoaLumberjack) 형식입니다. – vikingosegundo
StackOverflow의 지침을 철저히 지키지는 못했지만 예제 코드에서 제 3자를 사용하지 않는 것이 더 좋다고 생각합니다. NSLog()는 간단하게 유지하고 신규 이민자를 혼동하지 않을 것입니다. –