Module org.newsclub.net.unix.darwin
Class AFSYSTEMSocket
java.lang.Object
java.net.Socket
org.newsclub.net.unix.AFSocket<org.newsclub.net.unix.AFSYSTEMSocketAddress>
org.newsclub.net.unix.darwin.system.AFSYSTEMSocket
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.newsclub.net.unix.AFSocketExtensions
,org.newsclub.net.unix.AFSomeSocket
,org.newsclub.net.unix.AFSomeSocketThing
,AFSYSTEMSocketExtensions
,org.newsclub.net.unix.FileDescriptorAccess
public final class AFSYSTEMSocket
extends org.newsclub.net.unix.AFSocket<org.newsclub.net.unix.AFSYSTEMSocketAddress>
implements AFSYSTEMSocketExtensions
Implementation of an
AF_SYSTEM
socket.- Author:
- Christian Kohlschütter
-
Nested Class Summary
Nested classes/interfaces inherited from class org.newsclub.net.unix.AFSocket
org.newsclub.net.unix.AFSocket.Constructor<A extends org.newsclub.net.unix.AFSocketAddress>
-
Method Summary
Modifier and TypeMethodDescriptionstatic AFSYSTEMSocket
connectTo
(org.newsclub.net.unix.AFSYSTEMSocketAddress addr) Creates a newAFSocket
and connects it to the givenAFSYSTEMSocketAddress
.static boolean
Returnstrue
iffAFSYSTEMSocket
s (sockets of type "AF_SYSTEM") are supported by the current Java VM and the kernel.static void
Very basic self-test function.protected AFSYSTEMSocketChannel
static AFSYSTEMSocket
Creates a new, unboundAFSocket
.static AFSYSTEMSocket
Creates a new, unbound, "strict"AFSocket
.Methods inherited from class org.newsclub.net.unix.AFSocket
addCloseable, bind, checkConnectionClosed, close, connect, connect, connectHook, connectTo, connectTo, ensureAncillaryReceiveBufferSize, ensureSupported, ensureUnsafeSupported, forceConnectAddress, getAncillaryReceiveBufferSize, getFileDescriptor, getImplExtensions, getInputStream, getLoadedLibrary, getLocalSocketAddress, getOutputStream, getRemoteSocketAddress, getVersion, isBound, isClosed, isConnected, isRunningOnAndroid, newInstance, removeCloseable, setAncillaryReceiveBufferSize, setShutdownOnClose, socketAddressClass, supports, supports, toString
Methods inherited from class java.net.Socket
getInetAddress, getKeepAlive, getLocalAddress, getLocalPort, getOOBInline, getOption, getPort, getReceiveBufferSize, getReuseAddress, getSendBufferSize, getSoLinger, getSoTimeout, getTcpNoDelay, getTrafficClass, isInputShutdown, isOutputShutdown, sendUrgentData, setKeepAlive, setOOBInline, setOption, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSocketImplFactory, setSoLinger, setSoTimeout, setTcpNoDelay, setTrafficClass, shutdownInput, shutdownOutput, supportedOptions
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.newsclub.net.unix.AFSocketExtensions
ensureAncillaryReceiveBufferSize, getAncillaryReceiveBufferSize, setAncillaryReceiveBufferSize
-
Method Details
-
isSupported
public static boolean isSupported()Returnstrue
iffAFSYSTEMSocket
s (sockets of type "AF_SYSTEM") are supported by the current Java VM and the kernel. To supportAFSYSTEMSocket
s, a custom JNI library must be loaded that is supplied with junixsocket, and the system must support AF_SYSTEM sockets. This call is equivalent to checkingAFSocket.isSupported()
andAFSocket.supports(AFSocketCapability)
withAFSocketCapability.CAPABILITY_DARWIN
.- Returns:
true
iff supported.
-
newChannel
- Specified by:
newChannel
in classorg.newsclub.net.unix.AFSocket<org.newsclub.net.unix.AFSYSTEMSocketAddress>
-
newInstance
Creates a new, unboundAFSocket
. This "default" implementation is a bit "lenient" with respect to the specification. In particular, we ignore calls toSocket.getTcpNoDelay()
andSocket.setTcpNoDelay(boolean)
.- Returns:
- A new, unbound socket.
- Throws:
IOException
- if the operation fails.
-
newStrictInstance
Creates a new, unbound, "strict"AFSocket
. This call uses an implementation that tries to be closer to the specification thannewInstance()
, at least for some cases.- Returns:
- A new, unbound socket.
- Throws:
IOException
- if the operation fails.
-
connectTo
public static AFSYSTEMSocket connectTo(org.newsclub.net.unix.AFSYSTEMSocketAddress addr) throws IOException Creates a newAFSocket
and connects it to the givenAFSYSTEMSocketAddress
.- Parameters:
addr
- The address to connect to.- Returns:
- A new, connected socket.
- Throws:
IOException
- if the operation fails.
-
getChannel
- Overrides:
getChannel
in classorg.newsclub.net.unix.AFSocket<org.newsclub.net.unix.AFSYSTEMSocketAddress>
-
main
Very basic self-test function. Prints "supported" and "capabilities" status to System.out.- Parameters:
args
- ignored.
-