Ok il problema vero e proprio sta nel receiver... i parametri CGPoint li ho inseriti in un NSData e inviati tramite socket al server, il quale riceve l'NSData e lo riconverte in CGPoint. Il fatto è che i valori sono totalmente sfasati!Dipende forse dal socket?
codice:
-(void)mouseReceived:(CGPoint *) location
{
NSData *myData = [NSData dataWithBytes:location length:sizeof(CGPoint)];
[self.socket writeData:myData withTimeout:-1.0 tag:0];
CGPoint dataReaded = *(CGPoint*)[myData bytes];
NSLog(@"%@", NSStringFromCGPoint(dataReaded));
}
Qua nel client i valori vengono letti in maniera corretta, se la stessa funzione la applico nel server, i valori sono però sfasati...
codice:
- (void)socket:(GCDAsyncSocket *)socket didAcceptNewSocket:(GCDAsyncSocket *)newSocket
{
NSLog(@"Socket accettato da %@:%hu", [newSocket connectedHost], [newSocket connectedPort]);
[self setSocket:newSocket];
[newSocket writeData:myData withTimeout:-1.0 tag:0];
NSString *message = @"Connessione effetuata correttamente.";
[self sendPacket:message];
}
Questo metodo richiama il didReadData
codice:
- (void)socket:(GCDAsyncSocket *)aSocket didReadData:(NSData *)data withTag:(long)tag
{
[aSocket readDataWithTimeout:-1.0 tag:0];
CGPoint dataReaded = *(CGPoint*)[data bytes];
NSPoint value = NSPointFromCGPoint(dataReaded);
NSLog(@"%@", NSStringFromPoint(value));
CGWarpMouseCursorPosition(value);
CGAssociateMouseAndMouseCursorPosition(true);
}
Il server in output legge il CGPoint così come segue, e non sono assolutamente degli NSPoint 
codice:
2014-01-09 21:49:25.650 Bonjour OS X Server[30760:303] {2.1398226099252536e+21, 0}
2014-01-09 21:49:25.667 Bonjour OS X Server[30760:303] {2.1213758657549073e+21, 0}
2014-01-09 21:49:25.684 Bonjour OS X Server[30760:303] {2.1213758656969253e+21, 0}
2014-01-09 21:49:25.701 Bonjour OS X Server[30760:303] {2.1213758656582705e+21, 0}
2014-01-09 21:49:25.718 Bonjour OS X Server[30760:303] {2.1213758656196158e+21, 0}
2014-01-09 21:49:25.796 Bonjour OS X Server[30760:303] {2.1029291215459063e+21, 0}
Mentre il client legge correttamente
codice:
2014-01-09 21:49:25.650 Bonjour iOS Client[30647:70b] {315, 884}
2014-01-09 21:49:25.667 Bonjour iOS Client[30647:70b] {303.75, 883}
2014-01-09 21:49:25.684 Bonjour iOS Client[30647:70b] {297, 883}
2014-01-09 21:49:25.701 Bonjour iOS Client[30647:70b] {292.5, 883}
2014-01-09 21:49:25.718 Bonjour iOS Client[30647:70b] {288, 883}
2014-01-09 21:49:25.796 Bonjour iOS Client[30647:70b] {288, 882}
Qualche idea sul perchè si comporti così?