Klasse UnixSocketAddress

Alle implementierten Schnittstellen:
PointerInterface

public class UnixSocketAddress extends SocketAddress
Support for UNIX-domain (also known as local) sockets, corresponding to
`struct sockaddr_un`.

UNIX domain sockets are generally visible in the filesystem.
However, some systems support abstract socket names which are not
visible in the filesystem and not affected by the filesystem
permissions, visibility, etc. Currently this is only supported
under Linux. If you attempt to use abstract sockets on other
systems, function calls may return `G_IO_ERROR_NOT_SUPPORTED`
errors. You can use [func@Gio.UnixSocketAddress.abstract_names_supported]
to see if abstract names are supported.

Since GLib 2.72, `GUnixSocketAddress` is available on all platforms. It
requires underlying system support (such as Windows 10 with `AF_UNIX`) at
run time.

Before GLib 2.72, `<gio/gunixsocketaddress.h>` belonged to the UNIX-specific
GIO interfaces, thus you had to use the `gio-unix-2.0.pc` pkg-config file
when using it. This is no longer necessary since GLib 2.72.

https://docs.gtk.org/gio/class.UnixSocketAddress.html

  • Konstruktordetails

    • UnixSocketAddress

      public UnixSocketAddress(PointerContainer pointer)
    • UnixSocketAddress

      public UnixSocketAddress(@Nonnull Str path)
      Creates a new #GUnixSocketAddress for @path.

      To create abstract socket addresses, on systems that support that,
      use g_unix_socket_address_new_abstract().
      Parameter:
      path - the socket path
    • UnixSocketAddress

      public UnixSocketAddress(String path)
      Creates a new #GUnixSocketAddress for @path.

      To create abstract socket addresses, on systems that support that,
      use g_unix_socket_address_new_abstract().
      Parameter:
      path - the socket path
  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • newAbstractUnixSocketAddress

      @Deprecated public static UnixSocketAddress newAbstractUnixSocketAddress(@Nonnull Str path, int path_len)
      Veraltet.
      Creates a new %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED
      #GUnixSocketAddress for @path.
      Parameter:
      path - the abstract name
      path_len - the length of @path, or -1
      Gibt zurück:
      a new #GUnixSocketAddress
    • newAbstractUnixSocketAddress

      @Deprecated public static UnixSocketAddress newAbstractUnixSocketAddress(String path, int path_len)
      Veraltet.
      Creates a new %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED
      #GUnixSocketAddress for @path.
      Parameter:
      path - the abstract name
      path_len - the length of @path, or -1
      Gibt zurück:
      a new #GUnixSocketAddress
    • newWithTypeUnixSocketAddress

      public static UnixSocketAddress newWithTypeUnixSocketAddress(@Nonnull Str path, int path_len, int type)
      Creates a new #GUnixSocketAddress of type @type with name @path.

      If @type is %G_UNIX_SOCKET_ADDRESS_PATH, this is equivalent to
      calling g_unix_socket_address_new().

      If @type is %G_UNIX_SOCKET_ADDRESS_ANONYMOUS, @path and @path_len will be
      ignored.

      If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT, then @path_len
      bytes of @path will be copied to the socket's path, and only those
      bytes will be considered part of the name. (If @path_len is -1,
      then @path is assumed to be NUL-terminated.) For example, if @path
      was "test", then calling g_socket_address_get_native_size() on the
      returned socket would return 7 (2 bytes of overhead, 1 byte for the
      abstract-socket indicator byte, and 4 bytes for the name "test").

      If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED, then
      @path_len bytes of @path will be copied to the socket's path, the
      rest of the path will be padded with 0 bytes, and the entire
      zero-padded buffer will be considered the name. (As above, if
      @path_len is -1, then @path is assumed to be NUL-terminated.) In
      this case, g_socket_address_get_native_size() will always return
      the full size of a `struct sockaddr_un`, although
      g_unix_socket_address_get_path_len() will still return just the
      length of @path.

      %G_UNIX_SOCKET_ADDRESS_ABSTRACT is preferred over
      %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED for new programs. Of course,
      when connecting to a server created by another process, you must
      use the appropriate type corresponding to how that process created
      its listening socket.
      Parameter:
      path - the name
      path_len - the length of @path, or -1
      type - a #GUnixSocketAddressType
      Gibt zurück:
      a new #GUnixSocketAddress
    • newWithTypeUnixSocketAddress

      public static UnixSocketAddress newWithTypeUnixSocketAddress(String path, int path_len, int type)
      Creates a new #GUnixSocketAddress of type @type with name @path.

      If @type is %G_UNIX_SOCKET_ADDRESS_PATH, this is equivalent to
      calling g_unix_socket_address_new().

      If @type is %G_UNIX_SOCKET_ADDRESS_ANONYMOUS, @path and @path_len will be
      ignored.

      If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT, then @path_len
      bytes of @path will be copied to the socket's path, and only those
      bytes will be considered part of the name. (If @path_len is -1,
      then @path is assumed to be NUL-terminated.) For example, if @path
      was "test", then calling g_socket_address_get_native_size() on the
      returned socket would return 7 (2 bytes of overhead, 1 byte for the
      abstract-socket indicator byte, and 4 bytes for the name "test").

      If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED, then
      @path_len bytes of @path will be copied to the socket's path, the
      rest of the path will be padded with 0 bytes, and the entire
      zero-padded buffer will be considered the name. (As above, if
      @path_len is -1, then @path is assumed to be NUL-terminated.) In
      this case, g_socket_address_get_native_size() will always return
      the full size of a `struct sockaddr_un`, although
      g_unix_socket_address_get_path_len() will still return just the
      length of @path.

      %G_UNIX_SOCKET_ADDRESS_ABSTRACT is preferred over
      %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED for new programs. Of course,
      when connecting to a server created by another process, you must
      use the appropriate type corresponding to how that process created
      its listening socket.
      Parameter:
      path - the name
      path_len - the length of @path, or -1
      type - a #GUnixSocketAddressType
      Gibt zurück:
      a new #GUnixSocketAddress
    • getAddressType

      public int getAddressType()
      Gets @address's type.
      Gibt zurück:
      a #GUnixSocketAddressType
    • getIsAbstract

      @Deprecated public boolean getIsAbstract()
      Veraltet.
      Tests if @address is abstract.
      Gibt zurück:
      %TRUE if the address is abstract, %FALSE otherwise
    • getPath

      public Str getPath()
      Gets @address's path, or for abstract sockets the "name".

      Guaranteed to be zero-terminated, but an abstract socket
      may contain embedded zeros, and thus you should use
      g_unix_socket_address_get_path_len() to get the true length
      of this string.
      Gibt zurück:
      the path for @address
    • getPathLen

      public long getPathLen()
      Gets the length of @address's path.

      For details, see g_unix_socket_address_get_path().
      Gibt zurück:
      the length of the path
    • abstractNamesSupported

      public static boolean abstractNamesSupported()
      Checks if abstract UNIX domain socket names are supported.
      Gibt zurück:
      %TRUE if supported, %FALSE otherwise
    • asSocketConnectable

      public SocketConnectable asSocketConnectable()
      Implements interface SocketConnectable. Call this to get access to interface functions.
      Setzt außer Kraft:
      asSocketConnectable in Klasse SocketAddress
      Gibt zurück:
      SocketConnectable
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()