| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package net
- // Destination represents a network destination including address and protocol (tcp / udp).
- type Destination interface {
- Network() string // Protocol of communication (tcp / udp)
- Address() Address // Address of destination
- String() string // String representation of the destination
- IsTCP() bool // True if destination is reachable via TCP
- IsUDP() bool // True if destination is reachable via UDP
- }
- // NewTCPDestination creates a TCP destination with given address
- func NewTCPDestination(address Address) Destination {
- return TCPDestination{address: address}
- }
- // NewUDPDestination creates a UDP destination with given address
- func NewUDPDestination(address Address) Destination {
- return UDPDestination{address: address}
- }
- type TCPDestination struct {
- address Address
- }
- func (dest TCPDestination) Network() string {
- return "tcp"
- }
- func (dest TCPDestination) Address() Address {
- return dest.address
- }
- func (dest TCPDestination) String() string {
- return "tcp:" + dest.address.String()
- }
- func (dest TCPDestination) IsTCP() bool {
- return true
- }
- func (dest TCPDestination) IsUDP() bool {
- return false
- }
- type UDPDestination struct {
- address Address
- }
- func (dest UDPDestination) Network() string {
- return "udp"
- }
- func (dest UDPDestination) Address() Address {
- return dest.address
- }
- func (dest UDPDestination) String() string {
- return "udp:" + dest.address.String()
- }
- func (dest UDPDestination) IsTCP() bool {
- return false
- }
- func (dest UDPDestination) IsUDP() bool {
- return true
- }
|