# abstract struct Socket::Address

- Socket::Address
- Struct
- Value
- Object

##
Direct Known Subclasses

- Socket::IPAddress
- Socket::UNIXAddress

##
Defined in:

##
Constructors

- .from(sockaddr : Pointer(LibC::Sockaddr), addrlen) : Address

  Returns either an `IPAddress` or `UNIXAddres` from the internal OS representation.

- .new(family : Family, size : Int32)

##
Class Method Summary

- .parse(uri : URI)

  Parses a `Socket::Address` from an URI.

- .parse(uri : String)

  Parses a `Socket::Address` from an URI.

##
Instance Method Summary

- #==(other)

  Returns `true` if this struct is equal to other.

- #family : Family
- #size : Int32
- #to_unsafe : Pointer(LibC::Sockaddr)

### Instance methods inherited from struct `Struct`

==(other) : Bool ==, hash(hasher) hash, inspect(io : IO) : Nil inspect, pretty_print(pp) : Nil pretty_print, to_s(io : IO) : Nil to_s

### Instance methods inherited from struct `Value`

==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup

### Instance methods inherited from class `Object`

!=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other) ===, =~(other) =~, __crystal_pseudo_! : Bool __crystal_pseudo_!, __crystal_pseudo_as(type : Class) __crystal_pseudo_as, __crystal_pseudo_as?(type : Class) __crystal_pseudo_as?, __crystal_pseudo_is_a?(type : Class) : Bool __crystal_pseudo_is_a?, __crystal_pseudo_nil? : Bool __crystal_pseudo_nil?, __crystal_pseudo_responds_to?(name : Symbol) : Bool __crystal_pseudo_responds_to?, class class, dup dup, hash(hasher)
hash hash, inspect : String
inspect(io : IO) : Nil inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s : String
to_s(io : IO) : Nil to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

### Class methods inherited from class `Object`

from_json(string_or_io, root : String)
from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml

##
Constructor Detail

def self.from(sockaddr : Pointer(LibC::Sockaddr), addrlen) : Address #

Returns either an `IPAddress` or `UNIXAddres` from the internal OS representation. Only INET, INET6 and UNIX families are supported.

def self.new(family : Family, size : Int32) #

##
Class Method Detail

def self.parse(uri : URI) #

Parses a `Socket::Address` from an URI.

Supported formats:

- `ip://:`
- `tcp://:`
- `udp://:`
- `unix://`

See `IPAddress.parse` and `UNIXAddress.parse` for details.

def self.parse(uri : String) #

Parses a `Socket::Address` from an URI.

Supported formats:

- `ip://:`
- `tcp://:`
- `udp://:`
- `unix://`

See `IPAddress.parse` and `UNIXAddress.parse` for details.

##
Instance Method Detail

def ==(other) #
Description copied from struct Struct

Returns `true` if this struct is equal to other.

Both structs's instance vars are compared to each other. Thus, two structs are considered equal if each of their instance variables are equal. Subclasses should override this method to provide specific equality semantics.

    struct Point
      def initialize(@x : Int32, @y : Int32)
      end
    end

    p1 = Point.new 1, 2
    p2 = Point.new 1, 2
    p3 = Point.new 3, 4

    p1 == p2 # => true
    p1 == p3 # => false

def family : Family #
def size : Int32 #
abstract def to_unsafe : Pointer(LibC::Sockaddr) #