I've given myself a headache trying to figure out how to run this Distributed Objects demo. I can run it just fine locally on the same machine.

Here's the situation. I have a Server App that spawns a Client App [with OpenGLView] on a remote machine.

I can do this easy with AppleScript.

The Client App seems to Vend it's OpenGLView window OK:

clientPort = [[NSSocketPort alloc] initWithTCPPort:SERVER_PORT];
if(clientPort == nil) continue; else NSLog(@"Port OK");
clientConnection = [NSConnection connectionWithReceivePort:clientPort sendPort:nil];
if(clientConnection == nil) continue; else NSLog(@"Conn OK");
[[NSSocketPortNameServer sharedInstance] registerPort:clientPort name:@"DOTest3_0"];

//Vend Object
@try {
[clientConnection setRootObject:object];
NSLog([NSString stringWithFormat:@"Port %d: Vend OK", (SERVER_PORT + i)]);
} @catch (...) {
NSLog([NSString stringWithFormat:@"Port %d: Vend Next", (SERVER_PORT + i)]);
The Server App finds the Port and Connection, but Raises a TimeOut exception:

// Create temporary Pointer to kGLView Object.
  id <NSCoding, kGLViewProtocol> openGLView;

      // Setup Port, Connection, & Proxy
      portTest = (NSSocketPort *)[[NSSocketPortNameServer sharedInstance] portForName:@"DOTest3_0" host:@"*"];
      if (portTest == nil ) continue ; else NSLog(@"Port OK");
      connTest = [NSConnection  connectionWithReceivePort:nil sendPort:portTest];
      if (connTest == nil ) continue ; else NSLog(@"Conn OK");
      openGLView = [[connTest rootProxy] retain];
      if (openGLView == nil ) continue ; else NSLog(@"OpenGL OK");
      [openGLView drawWithRotation: rotationAngle];

And I can't figure out for the life of Me WHY.

I get in the Console of the Client PC:
"Port OK"
"Conn OK"
"Port 8081: Vend OK"

I get in the Console of the Server PC:
"Port OK"
"Conn OK"
11/18/09 2:05:36 PM DOTest3[15278] [NSPortCoder sendBeforeTime:sendReplyPort:] timed out (10280263936.092180 280263936.092642) 1

Even if the TimeOuts are both set to 60 seconds.



Server: MacMini OS X 10.5
Client: MacPro OS X 10.6
Remote Login, Management, etc. are all enabled.