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>handlersprivate static intINITIAL_BUFFER_SIZEprivate java.util.concurrent.locks.ReentrantReadWriteLocklockprivate org.slf4j.Loggerloggerprivate java.io.BufferedOutputStreamoutputprivate PacketReader<D>packetReaderThreadprivate java.net.Socketsocketprivate javax.net.SocketFactorysocketFactoryprivate intsoTimeout
-
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 voidconnect(java.net.InetSocketAddress remoteAddress)Connect to the remote sidevoiddisconnect()Disconnect from the remote sideprivate voidinitWithSocket(java.lang.String remoteHostname)booleanisConnected()Checks if the transport layer is currently connected.voidsetSocketFactory(javax.net.SocketFactory socketFactory)voidsetSoTimeout(int soTimeout)voidwrite(P packet)Write the packet to the transport.private voidwriteDirectTcpPacketHeader(int size)private voidwritePacketData(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:TransportLayerWrite the packet to the transport.- Specified by:
writein interfaceTransportLayer<D extends PacketData<?>>- Parameters:
packet- The packet to write.- Throws:
TransportException
-
connect
public void connect(java.net.InetSocketAddress remoteAddress) throws java.io.IOExceptionDescription copied from interface:TransportLayerConnect to the remote side- Specified by:
connectin 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.IOExceptionDescription copied from interface:TransportLayerDisconnect from the remote side- Specified by:
disconnectin interfaceTransportLayer<D extends PacketData<?>>- Throws:
java.io.IOException
-
isConnected
public boolean isConnected()
Description copied from interface:TransportLayerChecks if the transport layer is currently connected.- Specified by:
isConnectedin 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
-
-