您的位置:首页 > 移动开发 > IOS开发

IOS编程Socket连接处理

2013-07-12 18:38 99 查看
#pragma mark - Connection management

- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode

{

#pragma unused(stream)

switch(eventCode) {

case NSStreamEventOpenCompleted: {

self.streamOpenCount += 1;

assert(self.streamOpenCount <= 2);

if (self.streamOpenCount == 2) {

[self.server deregister];

}

} break;

case NSStreamEventHasSpaceAvailable: {

assert(stream == self.outputStream);

// do nothing

} break;

case NSStreamEventHasBytesAvailable: {

uint8_t buff[1024];

NSInteger len;

assert(stream == self.inputStream);

len = [self.inputStream read:buff maxLength:sizeof(buff)];

if (len <= 0) {

// Do nothing; we'll handle EOF and error in the

// NSStreamEventEndEncountered and NSStreamEventErrorOccurred case,

// respectively.

} else {

// We received a remote tap update, forward it to the appropriate view

//NSString *msg = [[NSString alloc]initWithBytes:buff length:len encoding:NSUTF8StringEncoding];

NSMutableData *data = [NSMutableData dataWithBytes:buff length:len];

NSString *sendStr = @"Server:ReceiveOK";

[self send:sendStr];

//int msg;

//NSString *msg = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

//[data getBytes:&msg length:len];

//[data getBytes:&msg length:sizeof(msg)];

//

// NSMutableString *hex = [NSMutableString stringWithCapacity:[data length]];

//

// for (int i=0; i < [data length]; i++) {

// [hex appendFormat:@"%02x", [data bytes][i]];

// }

NSString *msg = @"";

const void *datas = [data bytes];

for (int i=0; i < [data length]; i+=sizeof(uint16_t)) {

uint16_t lem = OSReadBigInt16(datas, i);

msg = [msg stringByAppendingFormat:@"%02x",lem];//[hex appendFormat:@"%02x", [data bytes][i]];

}

AppDelegate *app = (AppDelegate *)[UIApplication sharedApplication].delegate;

//uint32_t msg;

[app.mainVC displayResultInLabel:LABEL_RECEIVE result:msg];//[NSString stringWithFormat:@"%02x",[msg intValue]]];

[SDKAgent handleReceiveData:data];

}

} break;

default:

assert(NO);

// fall through

case NSStreamEventErrorOccurred:

// fall through

case NSStreamEventEndEncountered: {

[self setUpNewState];

} break;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: