我使用NSOutputStream将数据从客户端(IOS设备)输出到服务器(PC设备)。 我可以成功地将数据发送到服务器,我只想使用NSOutputStream添加当前时间。
如何使用NSOutputStream发送当前时间?
这是我的代码
- (IBAction)button1:(id)sender {
NSString *response = @" Today's Sunny \n ";
NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSASCIIStringEncoding]];
[outputStream write:[data bytes] maxLength:[data length]];
NSDate *currentTime = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"hh:mm:ss"];
_timer.text = [formatter stringFromDate:currentTime];
//_timer is A label just for testing
///I'm trying to use outputStream to output currentTime like this
/// [outputStream write:[currentTime bytes] maxLength:[CurrentTime length]];
}
答案 0 :(得分:1)
您需要将格式化的时间字符串转换为数据,就像您已经使用响应一样,只要流的另一端只是期待文本。通常可以更容易地直接使用-UTF8String方法而不是使用NSData:
[outputStream write:[string UTF8String]
maxLength:[string lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
最后,您将在NSStream上发送原始字节。 NSData显然是如何做到的,但如果使用字符字节,则需要获得精确的c字符串长度 - 所以你可以使用它的UTF8String和strlen(),或者如上所述的lengthOfBytesUsingEncoding方法。
答案 1 :(得分:0)
这里是完整答案
NSDate *currentTime = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"hh:mm:ss"];
NSString *timeString = [formatter stringFromDate:currentTime];
[outputStream write:[timeString UTF8String]
maxLength:[timeString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]