Explorar el Código

Added the rest of the game name and version stuff... still
doesn't validate with it but at least the client and server
can be setup now.


git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7039 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

PSp..om hace 14 años
padre
commit
5faa1f08fe

+ 13 - 0
engine/src/networking/com/jme3/network/Client.java

@@ -61,6 +61,19 @@ public interface Client extends MessageConnection
      */
     public int getId();     
  
+    /**
+     *  Returns the 'game name' for servers to which this client should be able
+     *  to connect.  This should match the 'game name' set on the server or this
+     *  client will be turned away.
+     */
+    public String getGameName();
+ 
+    /**
+     *  Returns the game-specific version of the server this client should
+     *  be able to connect to.
+     */   
+    public int getVersion();
+ 
     /**
      *  Sends a message to the server.
      */   

+ 35 - 20
engine/src/networking/com/jme3/network/Network.java

@@ -51,6 +51,9 @@ import com.jme3.network.kernel.udp.UdpKernel;
  */
 public class Network
 {
+    public static final String DEFAULT_GAME_NAME = "Unnamed jME3 Game";
+    public static final int DEFAULT_VERSION = 42;
+
     /**
      *  Creates a Server that will utilize both reliable and fast
      *  transports to communicate with clients.  The specified port
@@ -58,7 +61,7 @@ public class Network
      */
     public static Server createServer( int port ) throws IOException
     {   
-        return createServer( "Unnamed Game", 42, port, port );
+        return createServer( DEFAULT_GAME_NAME, DEFAULT_VERSION, port, port );
     }
 
     /**
@@ -68,7 +71,7 @@ public class Network
      */
     public static Server createServer( int tcpPort, int udpPort ) throws IOException
     {
-        return createServer( "Unnamed Game", 42, tcpPort, udpPort );
+        return createServer( DEFAULT_GAME_NAME, DEFAULT_VERSION, tcpPort, udpPort );
     }
 
     /**
@@ -87,7 +90,6 @@ public class Network
     public static Server createServer( String gameName, int version, int tcpPort, int udpPort ) throws IOException
     {
         UdpKernel fast = new UdpKernel(udpPort);
-        //UdpKernel fast = new UdpKernel( InetAddress.getByName("localhost"), udpPort);
         SelectorKernel reliable = new SelectorKernel(tcpPort);
  
         return new DefaultServer( gameName, version, reliable, fast );       
@@ -98,7 +100,7 @@ public class Network
      */
     public static NetworkClient createClient()
     {
-        return createClient( "Unnamed Game", 42 );
+        return createClient( DEFAULT_GAME_NAME, DEFAULT_VERSION );
     }     
 
     /**
@@ -114,48 +116,61 @@ public class Network
     /**
      *  Creates a Client that communicates with the specified host and port
      *  using both reliable and fast transports.  The localUdpPort specifies the
-     *  local port to use for listening for incoming 'fast' UDP messages.
+     *  local port to use for listening for incoming 'fast' UDP messages from the
+     *  server.  This port is different than the host port in case the client
+     *  and server are run on the same machine.
      */   
     public static Client connectToServer( String host, int hostPort, int localUdpPort ) throws IOException
     {
-        return connectToServer( InetAddress.getByName(host), hostPort, hostPort, localUdpPort );   
+        return connectToServer( DEFAULT_GAME_NAME, DEFAULT_VERSION, host, hostPort, hostPort, localUdpPort );   
     }
 
     /**
      *  Creates a Client that communicates with the specified host and port
      *  using both reliable and fast transports.  The localUdpPort specifies the
-     *  local port to use for listening for incoming 'fast' UDP messages.
+     *  local port to use for listening for incoming 'fast' UDP messages from the
+     *  server.  This port is different than the host port in case the client
+     *  and server are run on the same machine.
      */   
     public static Client connectToServer( String host, int hostPort, int remoteUdpPort, 
                                           int localUdpPort ) throws IOException
     {
-        return connectToServer( InetAddress.getByName(host), hostPort, remoteUdpPort, localUdpPort );   
+        return connectToServer( DEFAULT_GAME_NAME, DEFAULT_VERSION, host, hostPort, remoteUdpPort,
+                                localUdpPort );
     }
- 
+
     /**
-     *  Creates a Client that communicates with the specified address and port
+     *  Creates a Client that communicates with the specified host and port
      *  using both reliable and fast transports.  The localUdpPort specifies the
-     *  local port to use for listening for incoming 'fast' messages.
+     *  local port to use for listening for incoming 'fast' UDP messages from the
+     *  server.  This port is different than the host port in case the client
+     *  and server are run on the same machine.
      */   
-    public static Client connectToServer( InetAddress address, int port, int localUdpPort ) throws IOException
+    public static Client connectToServer( String gameName, int version, 
+                                          String host, int hostPort, int localUdpPort ) throws IOException
     {
-        return connectToServer( address, port, port, localUdpPort );
+        return connectToServer( host, hostPort, hostPort, localUdpPort );   
     }
-    
+
     /**
-     *  Creates a Client that communicates with the specified address and port
+     *  Creates a Client that communicates with the specified host and port
      *  using both reliable and fast transports.  The localUdpPort specifies the
-     *  local port to use for listening for incoming 'fast' messages.
+     *  local port to use for listening for incoming 'fast' UDP messages from the
+     *  server.  This port is different than the host port in case the client
+     *  and server are run on the same machine.
      */   
-    public static Client connectToServer( InetAddress address, int port, int remoteUdpPort, 
+    public static Client connectToServer( String gameName, int version, 
+                                          String host, int hostPort, int remoteUdpPort, 
                                           int localUdpPort ) throws IOException
     {
-        UdpConnector fast = new UdpConnector( localUdpPort, address, port ); 
-        SocketConnector reliable = new SocketConnector( address, port );        
+        InetAddress remoteAddress = InetAddress.getByName(host);   
+        UdpConnector fast = new UdpConnector( localUdpPort, remoteAddress, hostPort ); 
+        SocketConnector reliable = new SocketConnector( remoteAddress, hostPort );        
        
-        return new DefaultClient( reliable, fast );
+        return new DefaultClient( gameName, version, reliable, fast );
     }
  
+ 
     protected static class NetworkClientImpl extends DefaultClient implements NetworkClient
     {
         public NetworkClientImpl(String gameName, int version)

+ 13 - 2
engine/src/networking/com/jme3/network/base/DefaultClient.java

@@ -73,8 +73,9 @@ public class DefaultClient implements Client
         this.version = version;
     }
     
-    public DefaultClient( Connector reliable, Connector fast )
+    public DefaultClient( String gameName, int version, Connector reliable, Connector fast )
     {
+        this( gameName, version );
         setConnectors( reliable, fast );
     }
 
@@ -100,7 +101,7 @@ public class DefaultClient implements Client
         if( !isRunning )
             throw new IllegalStateException( "Client is not started." );
     }
-    
+ 
     public void start()
     {
         if( isRunning )
@@ -159,6 +160,16 @@ public class DefaultClient implements Client
         return id;
     }     
  
+    public String getGameName()
+    {
+        return gameName;
+    }
+
+    public int getVersion()
+    {
+        return version;
+    }
+   
     public void send( Message message )
     {
         checkRunning();