net

package
v1.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2016 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package net contains common network utilities.

Index

Constants

View Source
const (
	// TCPNetwork represents the TCP network.
	TCPNetwork = Network("tcp")

	// UDPNetwork represents the UDP network.
	UDPNetwork = Network("udp")
)

Variables

View Source
var (
	// ErrorInvalidPortRage indicates an error during port range parsing.
	ErrorInvalidPortRange = errors.New("Invalid port range.")
)

Functions

This section is empty.

Types

type Address

type Address interface {
	IP() net.IP     // IP of this Address
	Domain() string // Domain of this Address

	IsIPv4() bool   // True if this Address is an IPv4 address
	IsIPv6() bool   // True if this Address is an IPv6 address
	IsDomain() bool // True if this Address is an domain address

	String() string // String representation of this Address
	Equals(Address) bool
}

Address represents a network address to be communicated with. It may be an IP address or domain address, not both. This interface doesn't resolve IP address for a given domain.

func DomainAddress

func DomainAddress(domain string) Address

DomainAddress creates an Address with given domain.

func IPAddress

func IPAddress(ip []byte) Address

IPAddress creates an Address with given IP.

func ParseAddress added in v1.9.1

func ParseAddress(addr string) Address

ParseAddress parses a string into an Address. The return value will be an IPAddress when the string is in the form of IPv4 or IPv6 address, or a DomainAddress otherwise.

type Destination

type Destination interface {
	Network() Network // Protocol of communication (tcp / udp)
	Address() Address // Address of destination
	Port() Port
	String() string // String representation of the destination
	NetAddr() string
	Equals(Destination) bool

	IsTCP() bool // True if destination is reachable via TCP
	IsUDP() bool // True if destination is reachable via UDP
}

Destination represents a network destination including address and protocol (tcp / udp).

func TCPDestination

func TCPDestination(address Address, port Port) Destination

TCPDestination creates a TCP destination with given address

func UDPDestination

func UDPDestination(address Address, port Port) Destination

UDPDestination creates a UDP destination with given address

type IPNet added in v1.1.1

type IPNet struct {
	// contains filtered or unexported fields
}

func NewIPNet added in v1.1.1

func NewIPNet() *IPNet

func NewIPNetInitialValue added in v1.1.1

func NewIPNetInitialValue(data map[uint32]byte) *IPNet

func (*IPNet) Add added in v1.1.1

func (this *IPNet) Add(ipNet *net.IPNet)

func (*IPNet) Contains added in v1.1.1

func (this *IPNet) Contains(ip net.IP) bool

func (*IPNet) Serialize added in v1.1.1

func (this *IPNet) Serialize() []uint32

type Network added in v0.14.1

type Network serial.StringLiteral

Network represents a communication network on internet.

func (Network) AsList added in v1.9.1

func (this Network) AsList() *NetworkList

type NetworkList added in v0.14.1

type NetworkList []Network

NetworkList is a list of Networks.

func NewNetworkList added in v1.9.1

func NewNetworkList(networks serial.StringLiteralList) NetworkList

NewNetworkList construsts a NetWorklist from the given StringListeralList.

func (*NetworkList) HasNetwork added in v0.14.1

func (this *NetworkList) HasNetwork(network Network) bool

HashNetwork returns true if the given network is in this NetworkList.

type Packet

type Packet interface {
	Destination() Destination
	Chunk() *alloc.Buffer // First chunk of this commnunication
	MoreChunks() bool
}

Packet is a network packet to be sent to destination.

func NewPacket added in v0.9.1

func NewPacket(dest Destination, firstChunk *alloc.Buffer, moreChunks bool) Packet

NewPacket creates a new Packet with given destination and payload.

type Port added in v1.1.1

type Port serial.Uint16Literal

Port represents a network port in TCP and UDP protocol.

func PortFromBytes added in v1.1.1

func PortFromBytes(port []byte) Port

PortFromBytes converts a byte array to a Port, assuming bytes are in big endian order. @unsafe Caller must ensure that the byte array has at least 2 elements.

func PortFromInt added in v1.9.1

func PortFromInt(v int) (Port, error)

PortFromInt converts an integer to a Port. @error when the integer is not positive or larger then 65535

func PortFromString added in v1.9.1

func PortFromString(s string) (Port, error)

PortFromString converts a string to a Port. @error when the string is not an integer or the integral value is a not a valid Port.

func (Port) Bytes added in v1.1.1

func (this Port) Bytes() []byte

Bytes returns the correspoding bytes of this Port, in big endian order.

func (Port) String added in v1.1.1

func (this Port) String() string

String returns the string presentation of this Port.

func (Port) Value added in v1.1.1

func (this Port) Value() uint16

Value return the correspoding uint16 value of this Port.

type PortRange added in v0.14.1

type PortRange struct {
	From Port
	To   Port
}

PortRange represents a range of ports.

func (PortRange) Contains added in v1.9.1

func (this PortRange) Contains(port Port) bool

Contains returns true if the given port is within the range of this PortRange.

type TimeOutReader

type TimeOutReader struct {
	// contains filtered or unexported fields
}

func NewTimeOutReader

func NewTimeOutReader(timeout int, connection net.Conn) *TimeOutReader

func (*TimeOutReader) GetTimeOut added in v0.9.1

func (reader *TimeOutReader) GetTimeOut() int

func (*TimeOutReader) Read

func (reader *TimeOutReader) Read(p []byte) (int, error)

func (*TimeOutReader) SetTimeOut added in v0.9.1

func (reader *TimeOutReader) SetTimeOut(value int)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL