-- want to send files to iphone over socket connection/wifi; so downloaded ASyncSocket which generates plenty of build errors related to Jam deprecated.
... trying to connect to my c++ windows socket software -- which works fine between to windows machines over port 8686.
I got this code from this forum, which so far does nada, but eventually goes to NSStreamEventErrorOccurred in the debugger:
So which port do I use? -- tried 2222; 3258; 60000; and 8686
Make the iphone the client or the server?
So how to implement sending files over a socket connection to the iphone?
- (IBAction)sendCommand

id)sender {
NSHost *host = [NSHost hostWithAddress:@"10.21.1.105"];
if (host != nil)
{
// iStream and oStream are instance variables
[NSStream getStreamsToHost:host port:8686 inputStream:&iStream outputStream:&oStream]; //was 2222; 3258; 60000; nada
//iStream is instance var of NSSInputStream
[iStream retain];
[iStream setDelegate:self];
[iStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[iStream open];
//oStream is instance var of NSSOutputStream
[oStream retain];
[oStream setDelegate:self];
[oStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[oStream open];
NSError *streamError;
streamError = [iStream streamError];
streamError = [oStream streamError];
NSStreamStatus streamStatus;
streamStatus = [iStream streamStatus];
streamStatus = [oStream streamStatus];
}
}
- (void)stream

NSStream *)theStream handleEvent

NSStreamEvent)streamEvent
{
NSString *io;
NSString *resultText;
if (theStream == iStream) io = @">>";
else io = @"<<";
NSString *eventx;
switch (streamEvent)
{
case NSStreamEventNone:
eventx = @"NSStreamEventNone";
//resultText.font = [UIFont fontWithName:@"Helvetica" size:10.0];
//resultText.textColor = [UIColor whiteColor];
resultText = [[NSString alloc] initWithFormat: @"Can not connect to the host!"];
break;
case NSStreamEventOpenCompleted:
eventx = @"NSStreamEventOpenCompleted";
break;
case NSStreamEventHasBytesAvailable:
eventx = @"NSStreamEventHasBytesAvailable";
if (theStream == iStream)
{
uint8_t buffer[1024];
int len;
while ([iStream hasBytesAvailable])
{
len = [iStream read:buffer maxLength:sizeof(buffer)];
if (len > 0)
{
NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];
NSData *theData = [[NSData alloc] initWithBytes:buffer length:len];
if (nil != output)
{
NSArray *arr = [output componentsSeparatedByString:@"\n"];
//resultText.font = [UIFont fontWithName:@"Helvetica" size:10.0];
//resultText.textColor = [UIColor whiteColor];
resultText = [[NSString alloc] initWithFormat: @"%@\n%@", resultText, output];
NSLog(@"%@", output);
[output release];
}
}
}
}
break;
case NSStreamEventHasSpaceAvailable:
eventx = @"NSStreamEventHasSpaceAvailable";
break;
case NSStreamEventErrorOccurred:
eventx = @"NSStreamEventErrorOccurred";
//resultText.font = [UIFont fontWithName:@"Helvetica" size:10.0];
//resultText.textColor = [UIColor whiteColor];
resultText = [[NSString alloc] initWithFormat: @"Can not connect to the host!"];
break;
case NSStreamEventEndEncountered:
eventx = @"NSStreamEventEndEncountered";
[theStream close];
[theStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[theStream release];
theStream = nil;
break;
default:
eventx = @"** Unknown";
}
NSLog(@"%@ : %@", io, eventx);
}