Package org.jgroups.blocks.cs
Class TcpServer
- java.lang.Object
-
- org.jgroups.blocks.cs.BaseServer
-
- org.jgroups.blocks.cs.TcpBaseServer
-
- org.jgroups.blocks.cs.TcpServer
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,ConnectionListener
public class TcpServer extends TcpBaseServer
Class that manages allows to send and receive messages via TCP sockets. Uses 1 thread/connection to read messages.- Author:
- Vladimir Blagojevic, Bela Ban
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
TcpServer.Acceptor
-
Nested classes/interfaces inherited from class org.jgroups.blocks.cs.BaseServer
BaseServer.Reaper
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Thread
acceptor
protected int
buffered_inputstream_size
protected int
buffered_outputstream_size
protected boolean
log_accept_error
protected java.net.ServerSocket
srv_sock
-
Fields inherited from class org.jgroups.blocks.cs.TcpBaseServer
peer_addr_read_timeout
-
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 TcpServer(java.net.InetAddress bind_addr, int port)
Creates an instance ofTcpServer
that creates a server socket and listens for connections.TcpServer(IpAddress bind_addr)
Creates an instance of TcpServer.protected
TcpServer(ThreadFactory thread_factory, SocketFactory socket_factory)
TcpServer(ThreadFactory thread_factory, SocketFactory socket_factory, java.net.InetAddress bind_addr, int srv_port, int end_port, java.net.InetAddress external_addr, int external_port)
Creates an instance ofTcpServer
that creates a server socket and listens for connections Needs to be started next.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getBufferedInputStreamSize()
int
getBufferedOutputStreamSize()
boolean
getLogAcceptError()
TcpServer
setBufferedInputStreamSize(int s)
TcpServer
setBufferedOutputStreamSize(int s)
TcpServer
setLogAcceptError(boolean l)
void
start()
Starts accepting connections.void
stop()
Stops listening for connections and handling traffic.-
Methods inherited from class org.jgroups.blocks.cs.TcpBaseServer
createConnection, peerAddressReadTimeout, peerAddressReadTimeout
-
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, send, send, sendBufferSize, sendBufferSize, sendToAll, sendToAll, setMaxLength, socketConnectionTimeout, socketConnectionTimeout, socketFactory, socketFactory, tcpNodelay, tcpNodelay, timeService, timeService, toString, usePeerConnections, usePeerConnections, validateArgs
-
-
-
-
Constructor Detail
-
TcpServer
public TcpServer(java.net.InetAddress bind_addr, int port) throws java.lang.Exception
Creates an instance ofTcpServer
that creates a server socket and listens for connections. The end port defaults to (port + 50). Needs to be started next.- Parameters:
bind_addr
- The local address to bind to. If null, the address will be picked by the OSport
- The local port to bind to. If 0, the port will be picked by the OS.- Throws:
java.lang.Exception
- Thrown if the creation failed
-
TcpServer
public TcpServer(IpAddress bind_addr) throws java.lang.Exception
Creates an instance of TcpServer.- Parameters:
bind_addr
- The local bind address and port. If null, a bind address and port will be picked by the OS.- Throws:
java.lang.Exception
-
TcpServer
public TcpServer(ThreadFactory thread_factory, SocketFactory socket_factory, java.net.InetAddress bind_addr, int srv_port, int end_port, java.net.InetAddress external_addr, int external_port) throws java.lang.Exception
Creates an instance ofTcpServer
that creates a server socket and listens for connections Needs to be started next.- Parameters:
thread_factory
- The thread factory used to create new threadssocket_factory
- The socket factory used to create socketsbind_addr
- The local address to bind to. If null, the address will be picked by the OSsrv_port
- The local port to bind to. If 0, the port will be picked by the OS.end_port
- If srv_port is taken, the next port is tried, until end_port has been reached, in which case an exception will be thrown. If srv_port == end_port, only 1 port will be tried.external_addr
- The external address in case of NAT. Ignored if null.external_port
- The external port on the NA. If 0, srv_port is used.- Throws:
java.lang.Exception
- Thrown if the creation failed
-
TcpServer
protected TcpServer(ThreadFactory thread_factory, SocketFactory socket_factory)
-
-
Method Detail
-
getBufferedInputStreamSize
public int getBufferedInputStreamSize()
-
setBufferedInputStreamSize
public TcpServer setBufferedInputStreamSize(int s)
-
getBufferedOutputStreamSize
public int getBufferedOutputStreamSize()
-
setBufferedOutputStreamSize
public TcpServer setBufferedOutputStreamSize(int s)
-
getLogAcceptError
public boolean getLogAcceptError()
-
setLogAcceptError
public TcpServer setLogAcceptError(boolean l)
-
start
public void start() throws java.lang.Exception
Description copied from class:BaseServer
Starts accepting connections. Typically, socket handler or selectors thread are started here.- Overrides:
start
in classBaseServer
- Throws:
java.lang.Exception
-
stop
public void stop()
Description copied from class:BaseServer
Stops listening for connections and handling traffic. Typically, socket handler or selector threads are stopped, and server sockets or channels are closed.- Overrides:
stop
in classBaseServer
-
-