2016-05-06 61 views
0

我正在使用NSOutputStream將數據從客戶端(IOS設備)輸出到服務器(PC設備)。 我可以成功發送數據到服務器,我只是想使用NSOutputStream添加當前時間。使用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]]; 
} 

回答

1

你需要格式化的時間字符串轉換爲數據,你已經與響應做的方式,只要流的另一邊是剛剛期待的文本。它往往可以更容易地使用-UTF8String方法,而不是直接使用NSData的的:

[outputStream write:[string UTF8String] 
      maxLength:[string lengthOfBytesUsingEncoding:NSUTF8StringEncoding]]; 

最後,您是在NSStream發送了原始字節。 NSData很明顯如何做到這一點,但是如果使用字符字節,則需要獲取確切的c字符串長度 - 因此您可以使用UTF8String和strlen()或上面的lengthOfBytesUsingEncoding方法。

+0

謝謝您的幫助。老實說,我仍然不明白如何使用您的代碼來輸出currentTime類似於我做的迴應 –

+0

調用''[formatter stringFromDate:currentTime]''調用返回一個NSString實例,然後您可以調用UTF8String等等 –

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] 
相關問題