मैं एक सॉकेट के माध्यम से सर्वर पर UIImage भेजना चाहता हूं।NSOutputStream के लेखन संदेश का उपयोग कैसे करें?
- (IBAction)send:(id)sender {
NSURL *website = [NSURL URLWithString:str_IP];
NSHost *host = [NSHost hostWithName:[website host]];
[NSStream getStreamsToHost:host port:1100 inputStream:nil outputStream:&oStream];
[oStream retain];
[oStream setDelegate:self];
[oStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[oStream open];
}
ख) मैं लिखने के पूरा होने के बाद खुला NSData outputstream और त्रुटि को संभाल अगर त्रुटि तब होती है करने के लिए:
क) मैं outputstream खोलें।
- (void) stream: (NSStream *) stream handleEvent: (NSStreamEvent) eventCode
{
//printf("EVENT: Start.\n");
switch(eventCode)
{
case NSStreamEventOpenCompleted:
{
//printf("EVENT: Open completed.\n");
if(stream == oStream)
{
//printf("Sending...\n");
NSData *data = UIImageJPEGRepresentation(drawImage.image, 90);
NSInteger x = [oStream write:[data bytes] maxLength:[data length]];
}
break;
}
case NSStreamEventEndEncountered:
{
//printf("EVENT: End encountered.\n");
break;
}
case NSStreamEventHasSpaceAvailable:
{
//printf("EVENT: Has space available.\n");
break;
}
case NSStreamEventHasBytesAvailable:
{
//printf("EVENT: Has bytes available.\n");
break;
}
case NSStreamEventErrorOccurred:
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error Occurred"
message:nil
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
break;
}
case NSStreamEventNone:
{
//printf("EVENT: None.\n");
break;
}
}
//printf("EVENT: End.\n");
}
मुझे इस कोड चलाने के लिए, NSStreamEventOpenCompleted और NSStreamEventErrorOccurred called.The NSOutputStream के लिखने विधि सफलतापूर्वक बुलाया गया था और सभी डेटा नहीं के बराबर नहीं है। लेकिन ओस्ट्रीम को डेटा लिखा जाने के बाद, इवेंट कोड NSStreamEventErrorOccurred में बदल जाएगा।
तो मुझे लगता है कि शायद [ओस्ट्रीम लेखन] का उपयोग करने का यह सही तरीका नहीं है। तब इस संदेश का उपयोग करने का सही तरीका क्या है? मुझे लगता है कि यह संदेश -1073748088 का एनएसआईएनटेगर देता है, समस्या क्या हो सकती है?
क्या [oStream streamError] क्या आप देता है? – Chuck
ऑपरेशन पूरा नहीं हो सका। ऑपरेशन समय –