Better address binding.

Deprecated the methods on the old Message class
that are truly dangerous in the new version since
they always return null.


git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7016 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
PSp..om 14 years ago
parent 24b65c4914
commit d1c8626419
  1. 16
      engine/src/networking/com/jme3/network/Network.java
  2. 22
      engine/src/networking/com/jme3/network/kernel/tcp/SelectorKernel.java
  3. 21
      engine/src/networking/com/jme3/network/kernel/udp/UdpKernel.java
  4. 4
      engine/src/networking/com/jme3/network/message/Message.java

@ -58,10 +58,20 @@ public class Network
*/
public static Server createServer( int port ) throws IOException
{
InetAddress local = InetAddress.getLocalHost();
return createServer( port, port );
}
/**
* Creates a Server that will utilize both reliable and fast
* transports to communicate with clients. The specified port
* will be used for both TCP and UDP communication.
*/
public static Server createServer( int tcpPort, int udpPort ) throws IOException
{
//InetAddress local = InetAddress.getLocalHost();
UdpKernel fast = new UdpKernel(local, port);
SelectorKernel reliable = new SelectorKernel(local,port);
UdpKernel fast = new UdpKernel(udpPort);
SelectorKernel reliable = new SelectorKernel(tcpPort);
return new DefaultServer( reliable, fast );
}

@ -54,21 +54,24 @@ import com.jme3.network.kernel.*;
*/
public class SelectorKernel extends AbstractKernel
{
private InetAddress host;
private int port;
private InetSocketAddress address;
private SelectorThread thread;
private Map<Long,NioEndpoint> endpoints = new ConcurrentHashMap<Long,NioEndpoint>();
public SelectorKernel( InetAddress host, int port )
{
this.host = host;
this.port = port;
this( new InetSocketAddress(host, port) );
}
public SelectorKernel( int port ) throws IOException
{
this( InetAddress.getLocalHost(), port );
this( new InetSocketAddress(port) );
}
public SelectorKernel( InetSocketAddress address )
{
this.address = address;
}
protected SelectorThread createSelectorThread()
@ -87,7 +90,7 @@ public class SelectorKernel extends AbstractKernel
thread.connect();
thread.start();
} catch( IOException e ) {
throw new KernelException( "Error hosting:" + host + " port:" + port, e );
throw new KernelException( "Error hosting:" + address, e );
}
}
@ -100,7 +103,7 @@ public class SelectorKernel extends AbstractKernel
thread.close();
thread = null;
} catch( IOException e ) {
throw new KernelException( "Error closing host connection:" + host + " port:" + port, e );
throw new KernelException( "Error closing host connection:" + address, e );
}
}
@ -205,7 +208,7 @@ public class SelectorKernel extends AbstractKernel
public SelectorThread()
{
setName( "Selector@" + host + ":" + port );
setName( "Selector@" + address );
setDaemon(true);
}
@ -219,8 +222,7 @@ public class SelectorKernel extends AbstractKernel
serverChannel.configureBlocking(false);
// Bind the server socket to the specified address and port
InetSocketAddress isa = new InetSocketAddress(host, port);
serverChannel.socket().bind(isa);
serverChannel.socket().bind(address);
// Register the server socket channel, indicating an interest in
// accepting new connections

@ -49,8 +49,7 @@ import com.jme3.network.kernel.*;
*/
public class UdpKernel extends AbstractKernel
{
private InetAddress host;
private int port;
private InetSocketAddress address;
private HostThread thread;
// The nature of UDP means that even through a firewall,
@ -60,13 +59,17 @@ public class UdpKernel extends AbstractKernel
public UdpKernel( InetAddress host, int port )
{
this.host = host;
this.port = port;
this( new InetSocketAddress(host, port) );
}
public UdpKernel( int port ) throws IOException
{
this( InetAddress.getLocalHost(), port );
this( new InetSocketAddress(port) );
}
public UdpKernel( InetSocketAddress address )
{
this.address = address;
}
protected HostThread createHostThread()
@ -85,7 +88,7 @@ public class UdpKernel extends AbstractKernel
thread.connect();
thread.start();
} catch( IOException e ) {
throw new KernelException( "Error hosting:" + host + " port:" + port, e );
throw new KernelException( "Error hosting:" + address, e );
}
}
@ -98,7 +101,7 @@ public class UdpKernel extends AbstractKernel
thread.close();
thread = null;
} catch( IOException e ) {
throw new KernelException( "Error closing host connection:" + host + " port:" + port, e );
throw new KernelException( "Error closing host connection:" + address, e );
}
}
@ -170,7 +173,7 @@ public class UdpKernel extends AbstractKernel
public HostThread()
{
setName( "UDP Host@" + host + ":" + port );
setName( "UDP Host@" + address );
setDaemon(true);
}
@ -181,7 +184,7 @@ public class UdpKernel extends AbstractKernel
public void connect() throws IOException
{
socket = new DatagramSocket( port, host );
socket = new DatagramSocket( address );
}
public void close() throws IOException, InterruptedException

@ -65,18 +65,22 @@ public class Message implements com.jme3.network.Message {
return this;
}
@Deprecated
public Client getClient() {
return connector;
}
@Deprecated
public void setClient(Client connector) {
this.connector = connector;
}
@Deprecated
public Connection getConnection() {
return connection;
}
@Deprecated
public void setConnection(Connection connection) {
this.connection = connection;
}

Loading…
Cancel
Save