Class UnixDomainSocket

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class UnixDomainSocket
    extends java.net.Socket
    Unix IPC socket
    • Constructor Summary

      Constructors 
      Constructor Description
      UnixDomainSocket​(java.lang.String path)
      Constructor
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      static int close​(int fd)
      Close socket
      static int connect​(int sockfd, UnixDomainSocket.SockAddr sockaddr, int addrlen)
      Connect socket
      void connect​(java.net.SocketAddress endpoint, int timeout)  
      private static java.lang.String formatError​(com.sun.jna.LastErrorException lee)  
      java.io.InputStream getInputStream()  
      java.io.OutputStream getOutputStream()  
      boolean isConnected()  
      static int recv​(int fd, byte[] buffer, int count, int flags)
      Receive a message from a socket
      static int send​(int fd, byte[] buffer, int count, int flags)
      Send a message to a socket
      void setKeepAlive​(boolean b)  
      void setSoLinger​(boolean b, int i)  
      void setSoTimeout​(int timeout)  
      void setTcpNoDelay​(boolean b)  
      void shutdownInput()  
      void shutdownOutput()  
      static int socket​(int domain, int type, int protocol)
      creates an endpoint for communication and returns a file descriptor that refers to that endpoint.
      static java.lang.String strerror​(int errno)
      return a description of the error code passed in the argument errnum.
      • Methods inherited from class java.net.Socket

        bind, connect, getChannel, getInetAddress, getKeepAlive, getLocalAddress, getLocalPort, getLocalSocketAddress, getOOBInline, getPort, getReceiveBufferSize, getRemoteSocketAddress, getReuseAddress, getSendBufferSize, getSoLinger, getSoTimeout, getTcpNoDelay, getTrafficClass, isBound, isClosed, isInputShutdown, isOutputShutdown, sendUrgentData, setOOBInline, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSocketImplFactory, setTrafficClass, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • closeLock

        private final java.util.concurrent.atomic.AtomicBoolean closeLock
      • fd

        private final int fd
      • is

        private java.io.InputStream is
      • os

        private java.io.OutputStream os
      • connected

        private boolean connected
    • Constructor Detail

      • UnixDomainSocket

        public UnixDomainSocket​(java.lang.String path)
                         throws java.io.IOException
        Constructor
        Parameters:
        path - unix path
        Throws:
        java.io.IOException - if any error occurs
    • Method Detail

      • socket

        public static int socket​(int domain,
                                 int type,
                                 int protocol)
                          throws com.sun.jna.LastErrorException
        creates an endpoint for communication and returns a file descriptor that refers to that endpoint.
        Parameters:
        domain - domain
        type - type
        protocol - protocol
        Returns:
        file descriptor
        Throws:
        com.sun.jna.LastErrorException - if any error occurs
        See Also:
        Socket
      • connect

        public static int connect​(int sockfd,
                                  UnixDomainSocket.SockAddr sockaddr,
                                  int addrlen)
                           throws com.sun.jna.LastErrorException
        Connect socket
        Parameters:
        sockfd - file descriptor
        sockaddr - socket address
        addrlen - address length
        Returns:
        zero on success. -1 on error
        Throws:
        com.sun.jna.LastErrorException - if error occurs
      • recv

        public static int recv​(int fd,
                               byte[] buffer,
                               int count,
                               int flags)
                        throws com.sun.jna.LastErrorException
        Receive a message from a socket
        Parameters:
        fd - file descriptor
        buffer - buffer
        count - length
        flags - flag. @see flags
        Returns:
        zero on success. -1 on error
        Throws:
        com.sun.jna.LastErrorException - if error occurs
      • send

        public static int send​(int fd,
                               byte[] buffer,
                               int count,
                               int flags)
                        throws com.sun.jna.LastErrorException
        Send a message to a socket
        Parameters:
        fd - file descriptor
        buffer - buffer
        count - length
        flags - flag. @see flags
        Returns:
        zero on success. -1 on error
        Throws:
        com.sun.jna.LastErrorException - if error occurs
      • close

        public static int close​(int fd)
                         throws com.sun.jna.LastErrorException
        Close socket
        Parameters:
        fd - file descriptor
        Returns:
        zero on success. -1 on error
        Throws:
        com.sun.jna.LastErrorException - if error occurs
      • strerror

        public static java.lang.String strerror​(int errno)
        return a description of the error code passed in the argument errnum.
        Parameters:
        errno - error pointer
        Returns:
        error description
      • formatError

        private static java.lang.String formatError​(com.sun.jna.LastErrorException lee)
      • isConnected

        public boolean isConnected()
        Overrides:
        isConnected in class java.net.Socket
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.net.Socket
        Throws:
        java.io.IOException
      • connect

        public void connect​(java.net.SocketAddress endpoint,
                            int timeout)
                     throws java.io.IOException
        Overrides:
        connect in class java.net.Socket
        Throws:
        java.io.IOException
      • getInputStream

        public java.io.InputStream getInputStream()
        Overrides:
        getInputStream in class java.net.Socket
      • getOutputStream

        public java.io.OutputStream getOutputStream()
        Overrides:
        getOutputStream in class java.net.Socket
      • setTcpNoDelay

        public void setTcpNoDelay​(boolean b)
        Overrides:
        setTcpNoDelay in class java.net.Socket
      • setKeepAlive

        public void setKeepAlive​(boolean b)
        Overrides:
        setKeepAlive in class java.net.Socket
      • setSoLinger

        public void setSoLinger​(boolean b,
                                int i)
        Overrides:
        setSoLinger in class java.net.Socket
      • setSoTimeout

        public void setSoTimeout​(int timeout)
        Overrides:
        setSoTimeout in class java.net.Socket
      • shutdownInput

        public void shutdownInput()
        Overrides:
        shutdownInput in class java.net.Socket
      • shutdownOutput

        public void shutdownOutput()
        Overrides:
        shutdownOutput in class java.net.Socket