Hej igen!!
Håller fortfarande på att försöka skicka filer mellan mina datorer men har övergett NSStream för NetSocket. Slipper tänka på allt med krockar och liknande och det funkar jättebra... Förutom att mitt program verkar ladda in filen i minnet istället för att strömma den bit för bit direkt från disk... Nån som pillat med NetSocket innan som kan se vad jag gjort för fel??
-(void)sendFile {
NSData *readData; readData = [outgoingHandle readDataOfLength:1024*16];
NSLog(@Sending File);
[transferSocket writeData:readData];
}
- (void)netsocketConnected:(NetSocket*)inNetSocket {
[inNetSocket retain]; NSLog( @"FileTransfer: Connected" ); [self sendFile];
}
- (void)netsocket:(NetSocket*)inNetSocket connectionTimedOut:(NSTimeInterval)inTimeout { NSLog( @"FileTransfer: Connection timed out" );
}
- (void)netsocketDisconnected:(NetSocket*)inNetSocket { NSLog( @"FileTransfer: Disconnected" ); }
- (void)netsocket:(NetSocket*)inNetSocket dataAvailable:(unsigned)inAmount {
NSLog(@Incoming Data);
NSData *readData = [inNetSocket readData:inAmount];
NSLog(@Writing Data);
[incomingHandle writeData:readData];
}
- (void)netsocketDataSent:(NetSocket*)inNetSocket { NSLog(@Data sent);
[inNetSocket retain];
[inNetSocket scheduleOnCurrentRunLoop];
[self sendFile];
}
Deesutom verkar den binda upp väldigt mycket minne... men om jag använder autorelease eller release på nån av mina variabler krashar det bara
Nån som kan hjälpa mig?
//André