|
@@ -113,6 +113,16 @@ public class DefaultClient implements Client
|
|
// Send our connection message with a generated ID until
|
|
// Send our connection message with a generated ID until
|
|
// we get one back from the server. We'll hash time in
|
|
// we get one back from the server. We'll hash time in
|
|
// millis and time in nanos.
|
|
// millis and time in nanos.
|
|
|
|
+ // This is used to match the TCP and UDP endpoints up on the
|
|
|
|
+ // other end since they may take different routes to get there.
|
|
|
|
+ // Behind NAT, many game clients may be coming over the same
|
|
|
|
+ // IP address from the server's perspective and they may have
|
|
|
|
+ // their UDP ports mapped all over the place.
|
|
|
|
+ //
|
|
|
|
+ // Since currentTimeMillis() is absolute time and nano time
|
|
|
|
+ // is roughtly related to system start time, adding these two
|
|
|
|
+ // together should be plenty unique for our purposes. It wouldn't
|
|
|
|
+ // hurt to reconcile with IP on the server side, though.
|
|
long tempId = System.currentTimeMillis() + System.nanoTime();
|
|
long tempId = System.currentTimeMillis() + System.nanoTime();
|
|
|
|
|
|
// Set it true here so we can send some messages.
|
|
// Set it true here so we can send some messages.
|