使用 NSOutputStream 将当前时间输出到 Server
Using NSOutputStream to output the current time to the Server
我正在使用 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]];
}
您需要将格式化的时间字符串转换为数据,就像您已经对响应所做的那样,只要流的另一端只是期待文本。直接使用 -UTF8String 方法比使用 NSData:
通常更容易
[outputStream write:[string UTF8String]
maxLength:[string lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
最后,您将通过 NSStream 发送原始字节。 NSData 很明显如何做到这一点,但如果您使用字符字节,则需要获得准确的 c 字符串长度——因此您可以使用 UTF8String 和 strlen() ,或上面的 lengthOfBytesUsingEncoding 方法。
这是完整的答案
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]
我正在使用 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]];
}
您需要将格式化的时间字符串转换为数据,就像您已经对响应所做的那样,只要流的另一端只是期待文本。直接使用 -UTF8String 方法比使用 NSData:
通常更容易[outputStream write:[string UTF8String]
maxLength:[string lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
最后,您将通过 NSStream 发送原始字节。 NSData 很明显如何做到这一点,但如果您使用字符字节,则需要获得准确的 c 字符串长度——因此您可以使用 UTF8String 和 strlen() ,或上面的 lengthOfBytesUsingEncoding 方法。
这是完整的答案
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]