Package org.jgroups.blocks.cs
Class NioClient
- java.lang.Object
-
- org.jgroups.blocks.cs.BaseServer
-
- org.jgroups.blocks.cs.NioBaseServer
-
- org.jgroups.blocks.cs.NioClient
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,Client,ConnectionListener
public class NioClient extends NioBaseServer implements Client
- Since:
- 3.6.5
- Author:
- Bela Ban
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jgroups.blocks.cs.NioBaseServer
NioBaseServer.Acceptor
-
Nested classes/interfaces inherited from class org.jgroups.blocks.cs.BaseServer
BaseServer.Reaper
-
-
Field Summary
Fields Modifier and Type Field Description protected NioConnectionconnprotected Addressremote_addr-
Fields inherited from class org.jgroups.blocks.cs.NioBaseServer
acceptor, copy_on_partial_write, max_send_buffers, num_selects, reader_idle_time, reg_lock, registration, selector
-
Fields inherited from class org.jgroups.blocks.cs.BaseServer
client_bind_addr, client_bind_port, conn_expire_time, conn_listeners, conns, defer_client_binding, factory, linger, local_addr, log, max_length, reaper, reaperInterval, receiver, recv_buf_size, running, send_buf_size, sock_conn_timeout, sock_creation_lock, socket_factory, tcp_nodelay, time_service, use_peer_connections
-
-
Constructor Summary
Constructors Modifier Constructor Description NioClient(java.net.InetAddress bind_addr, int bind_port, java.net.InetAddress server_addr, int server_port)Creates an instance of anNioClientthat acts as a client: no server channel is created and no acceptor is started to listen for incoming connections.NioClient(IpAddress bind_addr, IpAddress server_addr)Creates an instance of anNioClientthat acts as a client: no server channel is created and no acceptor is started to listen for incoming connections.protectedNioClient(ThreadFactory thread_factory, SocketFactory sf)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisConnected()booleanisOpen()AddressremoteAddress()NioClientremoteAddress(IpAddress addr)Sets the address of the server.voidsend(byte[] data, int offset, int length)Sends data to the remote server.voidsend(java.nio.ByteBuffer data)Sends data to the remote server.voidsend(Address dest, byte[] data, int offset, int length)voidsend(Address dest, java.nio.ByteBuffer data)voidstart()Starts accepting connections.voidstop()Stops listening for connections and handling traffic.java.lang.StringtoString()-
Methods inherited from class org.jgroups.blocks.cs.NioBaseServer
acceptorDone, acceptorRunning, copyOnPartialWrite, copyOnPartialWrite, createConnection, handleAccept, maxSendBuffers, maxSendBuffers, numPartialWrites, numSelects, printBuffers, readerIdleTime, readerIdleTime, register, selectorOpen
-
Methods inherited from class org.jgroups.blocks.cs.BaseServer
addConnection, addConnectionListener, clearConnections, clientBindAddress, clientBindAddress, clientBindPort, clientBindPort, close, closeConnection, connectionClosed, connectionEstablished, connectionEstablishedTo, connExpireTime, connExpireTimeout, deferClientBinding, deferClientBinding, explanation, getConnection, getMaxLength, getNumConnections, getNumOpenConnections, hasConnection, linger, linger, localAddress, localAddress, log, log, notifyConnectionClosed, notifyConnectionEstablished, printConnections, reaperInterval, reaperInterval, receive, receive, receive, receiveBufferSize, receiveBufferSize, receiver, receiver, removeConnectionIfPresent, removeConnectionListener, replaceConnection, retainAll, running, sendBufferSize, sendBufferSize, sendToAll, sendToAll, setMaxLength, socketConnectionTimeout, socketConnectionTimeout, socketFactory, socketFactory, tcpNodelay, tcpNodelay, timeService, timeService, usePeerConnections, usePeerConnections, validateArgs
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jgroups.blocks.cs.Client
localAddress
-
-
-
-
Field Detail
-
remote_addr
protected Address remote_addr
-
conn
protected NioConnection conn
-
-
Constructor Detail
-
NioClient
public NioClient(IpAddress bind_addr, IpAddress server_addr)
Creates an instance of anNioClientthat acts as a client: no server channel is created and no acceptor is started to listen for incoming connections. Instead, a channel is created (bound to bind_addr/bind_port) and connected to server_addr/server_port. This is used to send messages to the remote server and receive messages from it. Note that there is only a single TCP connection established between the client and server.- Parameters:
bind_addr- The address to which the local channel should bind to. Can be null, then the OS picks the addressserver_addr- The address of the server to connect to- Throws:
java.lang.Exception- If the creation failed
-
NioClient
public NioClient(java.net.InetAddress bind_addr, int bind_port, java.net.InetAddress server_addr, int server_port)Creates an instance of anNioClientthat acts as a client: no server channel is created and no acceptor is started to listen for incoming connections. Instead, a channel is created (bound to bind_addr/bind_port) and connected to server_addr/server_port. This is used to send messages to the remote server and receive messages from it. Note that there is only a single TCP connection established between the client and server.- Parameters:
bind_addr- The address to which the local channel should bind to. Can be null, then the OS picks the addressbind_port- The local port. Can be 0, then the OS picks the port.server_addr- The address of the server to connect toserver_port- The port of the server to connect to.- Throws:
java.lang.Exception- If the creation failed
-
NioClient
protected NioClient(ThreadFactory thread_factory, SocketFactory sf)
-
-
Method Detail
-
remoteAddress
public Address remoteAddress()
- Specified by:
remoteAddressin interfaceClient
-
remoteAddress
public NioClient remoteAddress(IpAddress addr)
Sets the address of the server. Has no effect when already connected.
-
isConnected
public boolean isConnected()
- Specified by:
isConnectedin interfaceClient
-
start
public void start() throws java.lang.ExceptionDescription copied from class:BaseServerStarts accepting connections. Typically, socket handler or selectors thread are started here.- Overrides:
startin classBaseServer- Throws:
java.lang.Exception
-
stop
public void stop()
Description copied from class:BaseServerStops listening for connections and handling traffic. Typically, socket handler or selector threads are stopped, and server sockets or channels are closed.- Overrides:
stopin classBaseServer
-
send
public void send(Address dest, java.nio.ByteBuffer data) throws java.lang.Exception
- Overrides:
sendin classBaseServer- Throws:
java.lang.Exception
-
send
public void send(Address dest, byte[] data, int offset, int length) throws java.lang.Exception
- Overrides:
sendin classBaseServer- Throws:
java.lang.Exception
-
send
public void send(byte[] data, int offset, int length) throws java.lang.ExceptionDescription copied from interface:ClientSends data to the remote server. The server's address must have been set before.
-
send
public void send(java.nio.ByteBuffer data) throws java.lang.ExceptionDescription copied from interface:ClientSends data to the remote server. The server's address must have been set before.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classBaseServer
-
-