0
我想创建一个全局变量,它将包含来自套接字连接的答案。 这是我的代码:如何从输出套接字连接进行全局变量
- (void)initNetworkCommunication {
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.0.10", 35000, &readStream, &writeStream);
self.inputStream = objc_unretainedObject(readStream);
self.outputStream = objc_unretainedObject(writeStream);
[self.inputStream setDelegate:self];
[self.outputStream setDelegate:self];
[self.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.inputStream open];
[self.outputStream open];
}
-(void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{
switch (eventCode) {
case NSStreamEventOpenCompleted:
NSLog(@"Połączono\n");
break;
case NSStreamEventHasBytesAvailable:
if (aStream == self.inputStream) {
uint8_t buffer[1024];
long len;
while ([self.inputStream hasBytesAvailable]) {
len = [self.inputStream read:buffer maxLength:sizeof(buffer)];
if (len > 0) {
NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];
if (nil != output) {
NSLog(@"%@",output);
}
}
}
}
break;
case NSStreamEventErrorOccurred:
NSLog(@"Nie można połączyć\n");
break;
case NSStreamEventEndEncountered:
break;
default:
break;
}
}
我想使输出变量为全局,所以我可以在其他功能使用。我想这样做是因为我想创建条件 - 每当我发送请求时,控制器回答我并发送“>”符号,这意味着它已准备好接受另一个请求。我想创建仅在出现“>”时发送的条件。我已经为此做了RegExp,但是现在我有访问输出变量外流功能的问题。
当我试图在.h文件中定义输出 的extern的NSString *输出 我reciving 2级红色的错误 - https://开头DL。 dropboxusercontent.com/u/7071011/Zrzut%20ekranu%202014-12-22%20o%2000.38.44.png –