Class DirectTcpTransport<D extends PacketData<?>,P extends Packet<?>>
- java.lang.Object
-
- com.hierynomus.smbj.transport.tcp.direct.DirectTcpTransport<D,P>
-
- All Implemented Interfaces:
TransportLayer<P>
public class DirectTcpTransport<D extends PacketData<?>,P extends Packet<?>> extends java.lang.Object implements TransportLayer<P>
A transport layer over Direct TCP/IP.
-
-
Field Summary
Fields Modifier and Type Field Description private PacketHandlers<D,P>
handlers
private static int
INITIAL_BUFFER_SIZE
private java.util.concurrent.locks.ReentrantReadWriteLock
lock
private org.slf4j.Logger
logger
private java.io.BufferedOutputStream
output
private PacketReader<D>
packetReaderThread
private java.net.Socket
socket
private javax.net.SocketFactory
socketFactory
private int
soTimeout
-
Constructor Summary
Constructors Constructor Description DirectTcpTransport(javax.net.SocketFactory socketFactory, int soTimeout, PacketHandlers<D,P> handlers)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
connect(java.net.InetSocketAddress remoteAddress)
Connect to the remote sidevoid
disconnect()
Disconnect from the remote sideprivate void
initWithSocket(java.lang.String remoteHostname)
boolean
isConnected()
Checks if the transport layer is currently connected.void
setSocketFactory(javax.net.SocketFactory socketFactory)
void
setSoTimeout(int soTimeout)
void
write(P packet)
Write the packet to the transport.private void
writeDirectTcpPacketHeader(int size)
private void
writePacketData(Buffer<?> packetData)
-
-
-
Field Detail
-
logger
private final org.slf4j.Logger logger
-
handlers
private final PacketHandlers<D extends PacketData<?>,P extends Packet<?>> handlers
-
lock
private final java.util.concurrent.locks.ReentrantReadWriteLock lock
-
socketFactory
private javax.net.SocketFactory socketFactory
-
soTimeout
private int soTimeout
-
socket
private java.net.Socket socket
-
output
private java.io.BufferedOutputStream output
-
packetReaderThread
private PacketReader<D extends PacketData<?>> packetReaderThread
-
INITIAL_BUFFER_SIZE
private static final int INITIAL_BUFFER_SIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DirectTcpTransport
public DirectTcpTransport(javax.net.SocketFactory socketFactory, int soTimeout, PacketHandlers<D,P> handlers)
-
-
Method Detail
-
write
public void write(P packet) throws TransportException
Description copied from interface:TransportLayer
Write the packet to the transport.- Specified by:
write
in interfaceTransportLayer<D extends PacketData<?>>
- Parameters:
packet
- The packet to write.- Throws:
TransportException
-
connect
public void connect(java.net.InetSocketAddress remoteAddress) throws java.io.IOException
Description copied from interface:TransportLayer
Connect to the remote side- Specified by:
connect
in interfaceTransportLayer<D extends PacketData<?>>
- Parameters:
remoteAddress
- The remote address to connect to- Throws:
java.io.IOException
-
initWithSocket
private void initWithSocket(java.lang.String remoteHostname) throws java.io.IOException
- Throws:
java.io.IOException
-
disconnect
public void disconnect() throws java.io.IOException
Description copied from interface:TransportLayer
Disconnect from the remote side- Specified by:
disconnect
in interfaceTransportLayer<D extends PacketData<?>>
- Throws:
java.io.IOException
-
isConnected
public boolean isConnected()
Description copied from interface:TransportLayer
Checks if the transport layer is currently connected.- Specified by:
isConnected
in interfaceTransportLayer<D extends PacketData<?>>
-
setSocketFactory
public void setSocketFactory(javax.net.SocketFactory socketFactory)
-
setSoTimeout
public void setSoTimeout(int soTimeout)
-
writePacketData
private void writePacketData(Buffer<?> packetData) throws java.io.IOException
- Throws:
java.io.IOException
-
writeDirectTcpPacketHeader
private void writeDirectTcpPacketHeader(int size) throws java.io.IOException
- Throws:
java.io.IOException
-
-