...

パッケージ net

概要 ▾

net パッケージは,TCP/IP, UDP,ドメイン名解決,Unix ドメインソケットを含む,ネットワーク I/O の可搬的インターフェースを提供します。

このパッケージは低レベルのネットワーキングプリミティブへのアクセスを提供しますが,ほとんどのクライアントは Dial, Listen ,および Accept 機能と関連する Conn および Listener インターフェースによって渡される基本インターフェースのみを必要とします。 crypto/tls パッケージは同じインターフェースと同様の Dial と Listen 機能を使用します。

ダイヤル機能はサーバーに接続します。

conn , err := net.Dial("tcp" , "golang.org:80")err!=nil{// エラーを処理する }fmt.Fprintf(conn , "GET / HTTP/1.0\r\n\r\n") ステータス,エラー := bufio.NewReader(conn).ReadString('\n')//...

Listen 関数はサーバを作成します。

ln , err := net.Listen("tcp" , ":8080"){conn , err := ln の場合は error:=ln.Accept()err:=nil{//handle の場合 handleConnection(conn) を実行してください。

名前解決

ドメイン名を解決する方法は,間接的に Dial などの機能を使用しても, LookupHost や LookupAddr などの機能を直接使用しても,オペレーティングシステムによって異なります。

Unix システムでは,リゾルバには名前を解決するための 2 つのオプションがあります。 /etc/resolv.conf にリストされているサーバーに直接 DNS リクエストを送信する純粋な Go リゾルバーを使用することも, getaddrinfo や getnameinfo などの C ライブラリルーチンを呼び出す cgo ベースのリゾルバーを使用することもできます。

デフォルトでは純粋な Go リゾルバが使用されます。 ブロックされた C の呼び出しはオペレーティングシステムのスレッドを消費しますが,ブロックされた DNS リクエストはゴルーチンしか消費しないからです。 cgo が利用可能な場合,さまざまな条件下で cgo ベースのリゾルバが代わりに使用されます。 LOCALDOMAIN 環境変数が存在する場合 (空の場合でも) ,プログラムが直接 DNS リクエストを行わないようにするシステム (OSX)ASR_CONFIG 環境変数が空でない場合 (OpenBSD のみ) , /etc/resolv.conf または /etc/nsswitch.conf が Go リゾルバーが実装していない機能の使用を指定している場合, RES_OPTIONS または HOSTALIASES 環境変数は空ではありません。 そして,調べられている名前が .local で終わるか,または mDNS 名であるとき。

以下のように, GODEBUG 環境変数の netdns 値 (パッケージランタイムを参照) を go または cgo に設定することで,リゾルバの決定を無効にすることができます。

export GODEBUG=netdns=go # 強制純粋な Go リゾルバ exportexport GODEBUG=netdns=go #forcecgoresolver

netgo または netcgo ビルドタグを設定することによって, Go ソースツリーを構築する際に決定を強制することもできます。

GODEBUG=netdns=1 のように数値の netdns 設定を指定すると,リゾルバはその決定に関するデバッグ情報を出力します。 デバッグ情報も表示しながら特定のリゾルバを強制するには, GODEBUG=netdns=go+1 のように, 2 つの設定をプラス記号で結合します。

プラン 9 では,リゾルバーは常に /net/cs と /net/dns にアクセスします。

Windows では,リゾルバは常に GetAddrInfo や DnsQuery などの C ライブラリ関数を使用します。

目次 ▾

定数
変数
func JoinHostPort(host, port string) string
func LookupAddr(addr string) (names []string, err error)
func LookupCNAME(host string) (cname string, err error)
func LookupHost(host string) (addrs []string, err error)
func LookupPort(network, service string) (port int, err error)
func LookupTXT(name string) ([]string, error)
func ParseCIDR(s string) (IP, *IPNet, error)
func Pipe() (Conn, Conn)
func SplitHostPort(hostport string) (host, port string, err error)
type Addr
    func InterfaceAddrs() ([]Addr, error)
type AddrError
    func (e *AddrError) Error() string
    func (e *AddrError) Temporary() bool
    func (e *AddrError) Timeout() bool
type Buffers
    func (v *Buffers) Read(p []byte) (n int, err error)
    func (v *Buffers) WriteTo(w io.Writer) (n int64, err error)
type Conn
    func Dial(network, address string) (Conn, error)
    func DialTimeout(network, address string, timeout time.Duration) (Conn, error)
    func FileConn(f *os.File) (c Conn, err error)
type DNSConfigError
    func (e *DNSConfigError) Error() string
    func (e *DNSConfigError) Temporary() bool
    func (e *DNSConfigError) Timeout() bool
    func (e *DNSConfigError) Unwrap() error
type DNSError
    func (e *DNSError) Error() string
    func (e *DNSError) Is(target error) bool
    func (e *DNSError) Temporary() bool
    func (e *DNSError) Timeout() bool
type Dialer
    func (d *Dialer) Dial(network, address string) (Conn, error)
    func (d *Dialer) DialContext(ctx context.Context, network, address string) (Conn, error)
type Error
type Flags
    func (f Flags) String() string
type HardwareAddr
    func ParseMAC(s string) (hw HardwareAddr, err error)
    func (a HardwareAddr) String() string
type IP
    func IPv4(a, b, c, d byte) IP
    func LookupIP(host string) ([]IP, error)
    func ParseIP(s string) IP
    func (ip IP) DefaultMask() IPMask
    func (ip IP) Equal(x IP) bool
    func (ip IP) IsGlobalUnicast() bool
    func (ip IP) IsInterfaceLocalMulticast() bool
    func (ip IP) IsLinkLocalMulticast() bool
    func (ip IP) IsLinkLocalUnicast() bool
    func (ip IP) IsLoopback() bool
    func (ip IP) IsMulticast() bool
    func (ip IP) IsUnspecified() bool
    func (ip IP) MarshalText() ([]byte, error)
    func (ip IP) Mask(mask IPMask) IP
    func (ip IP) String() string
    func (ip IP) To16() IP
    func (ip IP) To4() IP
    func (ip *IP) UnmarshalText(text []byte) error
type IPAddr
    func ResolveIPAddr(network, address string) (*IPAddr, error)
    func (a *IPAddr) Network() string
    func (a *IPAddr) String() string
type IPConn
    func DialIP(network string, laddr, raddr *IPAddr) (*IPConn, error)
    func ListenIP(network string, laddr *IPAddr) (*IPConn, error)
    func (c *IPConn) Close() error
    func (c *IPConn) File() (f *os.File, err error)
    func (c *IPConn) LocalAddr() Addr
    func (c *IPConn) Read(b []byte) (int, error)
    func (c *IPConn) ReadFrom(b []byte) (int, Addr, error)
    func (c *IPConn) ReadFromIP(b []byte) (int, *IPAddr, error)
    func (c *IPConn) ReadMsgIP(b, oob []byte) (n, oobn, flags int, addr *IPAddr, err error)
    func (c *IPConn) RemoteAddr() Addr
    func (c *IPConn) SetDeadline(t time.Time) error
    func (c *IPConn) SetReadBuffer(bytes int) error
    func (c *IPConn) SetReadDeadline(t time.Time) error
    func (c *IPConn) SetWriteBuffer(bytes int) error
    func (c *IPConn) SetWriteDeadline(t time.Time) error
    func (c *IPConn) SyscallConn() (syscall.RawConn, error)
    func (c *IPConn) Write(b []byte) (int, error)
    func (c *IPConn) WriteMsgIP(b, oob []byte, addr *IPAddr) (n, oobn int, err error)
    func (c *IPConn) WriteTo(b []byte, addr Addr) (int, error)
    func (c *IPConn) WriteToIP(b []byte, addr *IPAddr) (int, error)
type IPMask
    func CIDRMask(ones, bits int) IPMask
    func IPv4Mask(a, b, c, d byte) IPMask
    func (m IPMask) Size() (ones, bits int)
    func (m IPMask) String() string
type IPNet
    func (n *IPNet) Contains(ip IP) bool
    func (n *IPNet) Network() string
    func (n *IPNet) String() string
type Interface
    func InterfaceByIndex(index int) (*Interface, error)
    func InterfaceByName(name string) (*Interface, error)
    func Interfaces() ([]Interface, error)
    func (ifi *Interface) Addrs() ([]Addr, error)
    func (ifi *Interface) MulticastAddrs() ([]Addr, error)
type InvalidAddrError
    func (e InvalidAddrError) Error() string
    func (e InvalidAddrError) Temporary() bool
    func (e InvalidAddrError) Timeout() bool
type ListenConfig
    func (lc *ListenConfig) Listen(ctx context.Context, network, address string) (Listener, error)
    func (lc *ListenConfig) ListenPacket(ctx context.Context, network, address string) (PacketConn, error)
type Listener
    func FileListener(f *os.File) (ln Listener, err error)
    func Listen(network, address string) (Listener, error)
type MX
    func LookupMX(name string) ([]*MX, error)
type NS
    func LookupNS(name string) ([]*NS, error)
type OpError
    func (e *OpError) Error() string
    func (e *OpError) Is(target error) bool
    func (e *OpError) Temporary() bool
    func (e *OpError) Timeout() bool
    func (e *OpError) Unwrap() error
type PacketConn
    func FilePacketConn(f *os.File) (c PacketConn, err error)
    func ListenPacket(network, address string) (PacketConn, error)
type ParseError
    func (e *ParseError) Error() string
type Resolver
    func (r *Resolver) LookupAddr(ctx context.Context, addr string) (names []string, err error)
    func (r *Resolver) LookupCNAME(ctx context.Context, host string) (cname string, err error)
    func (r *Resolver) LookupHost(ctx context.Context, host string) (addrs []string, err error)
    func (r *Resolver) LookupIPAddr(ctx context.Context, host string) ([]IPAddr, error)
    func (r *Resolver) LookupMX(ctx context.Context, name string) ([]*MX, error)
    func (r *Resolver) LookupNS(ctx context.Context, name string) ([]*NS, error)
    func (r *Resolver) LookupPort(ctx context.Context, network, service string) (port int, err error)
    func (r *Resolver) LookupSRV(ctx context.Context, service, proto, name string) (cname string, addrs []*SRV, err error)
    func (r *Resolver) LookupTXT(ctx context.Context, name string) ([]string, error)
type SRV
    func LookupSRV(service, proto, name string) (cname string, addrs []*SRV, err error)
type TCPAddr
    func ResolveTCPAddr(network, address string) (*TCPAddr, error)
    func (a *TCPAddr) Network() string
    func (a *TCPAddr) String() string
type TCPConn
    func DialTCP(network string, laddr, raddr *TCPAddr) (*TCPConn, error)
    func (c *TCPConn) Close() error
    func (c *TCPConn) CloseRead() error
    func (c *TCPConn) CloseWrite() error
    func (c *TCPConn) File() (f *os.File, err error)
    func (c *TCPConn) LocalAddr() Addr
    func (c *TCPConn) Read(b []byte) (int, error)
    func (c *TCPConn) ReadFrom(r io.Reader) (int64, error)
    func (c *TCPConn) RemoteAddr() Addr
    func (c *TCPConn) SetDeadline(t time.Time) error
    func (c *TCPConn) SetKeepAlive(keepalive bool) error
    func (c *TCPConn) SetKeepAlivePeriod(d time.Duration) error
    func (c *TCPConn) SetLinger(sec int) error
    func (c *TCPConn) SetNoDelay(noDelay bool) error
    func (c *TCPConn) SetReadBuffer(bytes int) error
    func (c *TCPConn) SetReadDeadline(t time.Time) error
    func (c *TCPConn) SetWriteBuffer(bytes int) error
    func (c *TCPConn) SetWriteDeadline(t time.Time) error
    func (c *TCPConn) SyscallConn() (syscall.RawConn, error)
    func (c *TCPConn) Write(b []byte) (int, error)
type TCPListener
    func ListenTCP(network string, laddr *TCPAddr) (*TCPListener, error)
    func (l *TCPListener) Accept() (Conn, error)
    func (l *TCPListener) AcceptTCP() (*TCPConn, error)
    func (l *TCPListener) Addr() Addr
    func (l *TCPListener) Close() error
    func (l *TCPListener) File() (f *os.File, err error)
    func (l *TCPListener) SetDeadline(t time.Time) error
    func (l *TCPListener) SyscallConn() (syscall.RawConn, error)
type UDPAddr
    func ResolveUDPAddr(network, address string) (*UDPAddr, error)
    func (a *UDPAddr) Network() string
    func (a *UDPAddr) String() string
type UDPConn
    func DialUDP(network string, laddr, raddr *UDPAddr) (*UDPConn, error)
    func ListenMulticastUDP(network string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error)
    func ListenUDP(network string, laddr *UDPAddr) (*UDPConn, error)
    func (c *UDPConn) Close() error
    func (c *UDPConn) File() (f *os.File, err error)
    func (c *UDPConn) LocalAddr() Addr
    func (c *UDPConn) Read(b []byte) (int, error)
    func (c *UDPConn) ReadFrom(b []byte) (int, Addr, error)
    func (c *UDPConn) ReadFromUDP(b []byte) (int, *UDPAddr, error)
    func (c *UDPConn) ReadMsgUDP(b, oob []byte) (n, oobn, flags int, addr *UDPAddr, err error)
    func (c *UDPConn) RemoteAddr() Addr
    func (c *UDPConn) SetDeadline(t time.Time) error
    func (c *UDPConn) SetReadBuffer(bytes int) error
    func (c *UDPConn) SetReadDeadline(t time.Time) error
    func (c *UDPConn) SetWriteBuffer(bytes int) error
    func (c *UDPConn) SetWriteDeadline(t time.Time) error
    func (c *UDPConn) SyscallConn() (syscall.RawConn, error)
    func (c *UDPConn) Write(b []byte) (int, error)
    func (c *UDPConn) WriteMsgUDP(b, oob []byte, addr *UDPAddr) (n, oobn int, err error)
    func (c *UDPConn) WriteTo(b []byte, addr Addr) (int, error)
    func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (int, error)
type UnixAddr
    func ResolveUnixAddr(network, address string) (*UnixAddr, error)
    func (a *UnixAddr) Network() string
    func (a *UnixAddr) String() string
type UnixConn
    func DialUnix(network string, laddr, raddr *UnixAddr) (*UnixConn, error)
    func ListenUnixgram(network string, laddr *UnixAddr) (*UnixConn, error)
    func (c *UnixConn) Close() error
    func (c *UnixConn) CloseRead() error
    func (c *UnixConn) CloseWrite() error
    func (c *UnixConn) File() (f *os.File, err error)
    func (c *UnixConn) LocalAddr() Addr
    func (c *UnixConn) Read(b []byte) (int, error)
    func (c *UnixConn) ReadFrom(b []byte) (int, Addr, error)
    func (c *UnixConn) ReadFromUnix(b []byte) (int, *UnixAddr, error)
    func (c *UnixConn) ReadMsgUnix(b, oob []byte) (n, oobn, flags int, addr *UnixAddr, err error)
    func (c *UnixConn) RemoteAddr() Addr
    func (c *UnixConn) SetDeadline(t time.Time) error
    func (c *UnixConn) SetReadBuffer(bytes int) error
    func (c *UnixConn) SetReadDeadline(t time.Time) error
    func (c *UnixConn) SetWriteBuffer(bytes int) error
    func (c *UnixConn) SetWriteDeadline(t time.Time) error
    func (c *UnixConn) SyscallConn() (syscall.RawConn, error)
    func (c *UnixConn) Write(b []byte) (int, error)
    func (c *UnixConn) WriteMsgUnix(b, oob []byte, addr *UnixAddr) (n, oobn int, err error)
    func (c *UnixConn) WriteTo(b []byte, addr Addr) (int, error)
    func (c *UnixConn) WriteToUnix(b []byte, addr *UnixAddr) (int, error)
type UnixListener
    func ListenUnix(network string, laddr *UnixAddr) (*UnixListener, error)
    func (l *UnixListener) Accept() (Conn, error)
    func (l *UnixListener) AcceptUnix() (*UnixConn, error)
    func (l *UnixListener) Addr() Addr
    func (l *UnixListener) Close() error
    func (l *UnixListener) File() (f *os.File, err error)
    func (l *UnixListener) SetDeadline(t time.Time) error
    func (l *UnixListener) SetUnlinkOnClose(unlink bool)
    func (l *UnixListener) SyscallConn() (syscall.RawConn, error)
type UnknownNetworkError
    func (e UnknownNetworkError) Error() string
    func (e UnknownNetworkError) Temporary() bool
    func (e UnknownNetworkError) Timeout() bool
Bugs

パッケージファイル

addrselect.go cgo_bsd.go cgo_resnew.go cgo_sockold.go cgo_unix.go conf.go dial.go dnsclient.go dnsclient_unix.go dnsconfig_unix.go error_posix.go error_unix.go fd_unix.go file.go file_unix.go hook.go hook_unix.go hosts.go interface.go interface_bsd.go interface_darwin.go ip.go iprawsock.go iprawsock_posix.go ipsock.go ipsock_posix.go lookup.go lookup_unix.go mac.go net.go nss.go parse.go pipe.go port.go port_unix.go rawconn.go sendfile_stub.go sock_bsd.go sock_posix.go sockaddr_posix.go sockopt_bsd.go sockopt_posix.go sockoptip_bsdvar.go sockoptip_posix.go splice_stub.go sys_cloexec.go tcpsock.go tcpsock_posix.go tcpsockopt_darwin.go tcpsockopt_posix.go udpsock.go udpsock_posix.go unixsock.go unixsock_posix.go writev_unix.go

定数

IP アドレスの長さ (バイト)

const (
    IPv4len = 4
    IPv6len = 16
)

変数

よく知られている IPv4 アドレス

var (
    IPv4bcast     = IPv4(255, 255, 255, 255) // 限定放送
    IPv4allsys    = IPv4(224, 0, 0, 1)       // 全システム
    IPv4allrouter = IPv4(224, 0, 0, 2)       // すべてのルーター
    IPv4zero      = IPv4(0, 0, 0, 0)         // すべてゼロ
)

よく知られている IPv6 アドレス

var (
    IPv6zero                   = IP{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
    IPv6unspecified            = IP{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
    IPv6loopback               = IP{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}
    IPv6interfacelocalallnodes = IP{0xff, 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01}
    IPv6linklocalallnodes      = IP{0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01}
    IPv6linklocalallrouters    = IP{0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x02}
)

DefaultResolver は,パッケージレベルの Lookup 関数によって,および指定された Resolver なしで Dialer によって使用されるリゾルバです。

var DefaultResolver = &Resolver{}

OpError に含まれる様々なエラー。

var (
    ErrWriteToConnected = errors.New("use of WriteTo with pre-connected connection")
)

func JoinHostPort

func JoinHostPort(host, port string) string

JoinHostPort は,ホストとポートを "host:port" という形式のネットワークアドレスに結合します。 リテラル IPv6 アドレスに見られるように, host にコロンが含まれる場合, JoinHostPort は "[host]:port" を返します。

ホストとポートのパラメータについては, func Dial を参照してください。

func LookupAddr

func LookupAddr(addr string) (names []string, err error)

LookupAddr は指定されたアドレスに対して逆引きを実行し,そのアドレスにマッピングされている名前のリストを返します。

ホスト C ライブラリリゾルバを使用している場合,最大 1 つの結果が返されます。 ホストリゾルバを迂回するには,カスタムリゾルバを使用します。

func LookupCNAME

func LookupCNAME(host string) (cname string, err error)

LookupCNAME は与えられたホストの正規の名前を返します。 正規名を気にしない呼び出し元は, LookupHost または LookupIP を直接呼び出すことができます。 どちらも,検索の一部として正規名を解決するように注意します。

正規名は,ゼロ個以上の CNAME レコードをたどった後の最終名です。 ホストが DNS "CNAME" レコードを含まない場合でも,ホストがアドレスレコードを解決する限り, LookupCNAME はエラーを返しません。

func LookupHost

func LookupHost(host string) (addrs []string, err error)

LookupHost はローカルリゾルバを使って与えられたホストを検索します。 そのホストのアドレスのスライスを返します。

func LookupPort

func LookupPort(network, service string) (port int, err error)

LookupPort は与えられたネットワークとサービスのポートを検索します。

func LookupTXT

func LookupTXT(name string) ([]string, error)

LookupTXT は,指定されたドメイン名の DNS TXT レコードを返します。

func ParseCIDR

func ParseCIDR(s string) (IP, *IPNet, error)

ParseCIDR は, RFC 4632 および RFC 4291 で定義されているように, "192.0.2.0/24" または "2001:db8::/32" のように, s を CIDR 表記の IP アドレスおよびプレフィックス長として解析します。

これは, IP アドレスと, IP とプレフィックス長によって示されるネットワークを返します。 たとえば, ParseCIDR("192.0.2.1/24") は IP アドレス 192.0.2.1 とネットワーク 192.0.2.0/24 を返します。

コード:

ipv4Addr, ipv4Net, err := net.ParseCIDR("192.0.2.1/24")
if err != nil {
    log.Fatal(err)
}
fmt.Println(ipv4Addr)
fmt.Println(ipv4Net)

ipv6Addr, ipv6Net, err := net.ParseCIDR("2001:db8:a0b:12f0::1/32")
if err != nil {
    log.Fatal(err)
}
fmt.Println(ipv6Addr)
fmt.Println(ipv6Net)

// 出力 :192.0.2.1192.0.2.0/242001:db8:a0b:12f0::12001:db8::/32

func Pipe

func Pipe() (Conn, Conn)

Pipe は,同期のインメモリ全二重ネットワーク接続を作成します。 両端は Conn インターフェースを実装します。 一方の端での読み取りはもう一方の端での書き込みと一致し, 2 つの間で直接データがコピーされます。 内部バッファリングはありません。

func SplitHostPort

func SplitHostPort(hostport string) (host, port string, err error)

SplitHostPort は, "host:port" , "host%zone:port" , "[host]:port" , "[host%zone]:port" の形式のネットワークアドレスを host または host%zone と port に分割します。

hostport のリテラル IPv6 アドレスは, "[::1]:80", "[::1%lo0]:80" のように角かっこで囲む必要があります。

hostport パラメータ,およびホストとポートの結果については, func Dial を参照してください。

type Addr

Addr はネットワークエンドポイントアドレスを表します。

Network と String の 2 つのメソッドは,通常,引数として Dial に渡すことができる文字列を返しますが,文字列の正確な形式と意味は実装次第です。

type Addr interface {
    Network() string // ネットワークの名前 ("tcp" , "udp" など)
    String() string  // アドレスの文字列形式 (例えば, "192.0.2.1:25", "[2001:db8::1]:80")
}

func InterfaceAddrs

func InterfaceAddrs() ([]Addr, error)

InterfaceAddrs は,システムのユニキャストインターフェースアドレスのリストを返します。

返されたリストは,関連付けられているインターフェースを識別しません。 詳細については, Interfaces と Interface.Addrs を使用してください。

type AddrError

type AddrError struct {
    Err  string
    Addr string
}

func (*AddrError) Error

func (e *AddrError) Error() string

func (*AddrError) Temporary

func (e *AddrError) Temporary() bool

func (*AddrError) Timeout

func (e *AddrError) Timeout() bool

type Buffers 1.8

Buffers には, 0 個以上の書き込みバイトが含まれています。

特定のマシンでは,特定の種類の接続に対して,これは OS 固有の一括書き込み操作 ("writev" など) に最適化されています。

type Buffers [][]byte

func (*Buffers) Read 1.8

func (v *Buffers) Read(p []byte) (n int, err error)

func (*Buffers) WriteTo 1.8

func (v *Buffers) WriteTo(w io.Writer) (n int64, err error)

type Conn

Conn は一般的なストリーム指向のネットワーク接続です。

複数のゴルーチンが Conn のメソッドを平行に呼び出すことができます。

type Conn interface {
    // 読み取りは,接続からデータを読み取ります。
    // タイムアウトするように読み取りを行い,一定の時間制限の後に Timeout() == true で Error を返すことができます。
    // SetDeadline と SetReadDeadline を参照してください。
    Read(b []byte) (n int, err error)

    // 書き込みは接続にデータを書き込みます。
    // タイムアウトまで書き込みを行い,一定の時間制限の後に Timeout() == true で Error を返すことができます。
    // SetDeadline と SetWriteDeadline を参照してください。
    Write(b []byte) (n int, err error)

    // 閉じるは接続を閉じます。
    // ブロックされた読み取りまたは書き込み操作はすべてブロック解除され,エラーが返されます。
    Close() error

    // LocalAddr はローカルネットワークアドレスを返します。
    LocalAddr() Addr

    // RemoteAddr はリモートネットワークアドレスを返します。
    RemoteAddr() Addr

    // SetDeadline は,接続に関連付けられている読み取り期限と書き込み期限を設定します。
    // これは, SetReadDeadline と SetWriteDeadline の両方を呼び出すのと同じです。
    //
    // デッドラインとは, I/O 操作がブロックされるのではなくタイムアウト (型 Error を参照) で失敗するまでの絶対時間です。
    // 締め切りは,直後の Read または Write の呼び出しだけでなく,将来および保留中のすべての I/O に適用されます。
    // 期限を過ぎた後は,将来期限を設定して接続を更新できます。
    //
    // 読み取りまたは書き込み呼び出しが成功した後に,期限を繰り返し延長することによって,アイドルタイムアウトを実装できます。
    //
    // t のゼロ値は,入出力操作がタイムアウトにならないことを意味します。
    SetDeadline(t time.Time) error

    // SetReadDeadline は,将来の Read 呼び出しと現在ブロックされている Read 呼び出しの期限を設定します。
    // t がゼロの場合, Read はタイムアウトしません。
    SetReadDeadline(t time.Time) error

    // SetWriteDeadline は,将来の書き込み呼び出しと現在ブロックされている書き込み呼び出しの期限を設定します。
    // 書き込みがタイムアウトしても, n > 0 が返され,データの一部が正常に書き込まれたことを示します。
    // t がゼロの場合,書き込みはタイムアウトしません。
    SetWriteDeadline(t time.Time) error
}

func Dial

func Dial(network, address string) (Conn, error)

ダイヤルは,指定されたネットワーク上のアドレスに接続します。

既知のネットワークは, "tcp", "tcp4" (IPv4 のみ), "tcp6" (IPv6 のみ) , "udp" , "udp4" (IPv4 のみ), "udp6" (IPv6 のみ), "ip" です。 , "ip4"(IPv4 のみ), "ip6" (IPv6 のみ), "unix", "unixgram" ,および "unixpacket" 。

TCP および UDP ネットワークの場合,アドレスは "host:port" という形式です。 ホストは,リテラル IP アドレス,または IP アドレスに解決できるホスト名でなければなりません。 ポートは,リテラルポート番号またはサービス名でなければなりません。 ホストがリテラル IPv6 アドレスの場合は, "[2001:db8::1]:80" または "[fe80::1%zone]:80" のように,角かっこで囲む必要があります。 ゾーンは, RFC 4007 で定義されているリテラル IPv6 アドレスの範囲を指定します。 関数 JoinHostPort と SplitHostPort は,この形式でホストとポートのペアを操作します。 TCP を使用していて,ホストが複数の IP アドレスに解決される場合, Dial は成功するまで各 IP アドレスを順番に試します。

例 :

Dial("tcp" , "golang.org:http")Dial("tcp" , "192.0.2.1:http")Dial("tcp" , "198.51.100.1:80")Dial("udp" , "[2001:db8::1]:domain")Dial("udp" , "[fe80::1 % lo0]:53")Dial("tcp" , ":80")

IP ネットワークの場合,ネットワークは "ip", "ip4" ,または "ip6" の後にコロンとリテラルプロトコル番号またはプロトコル名が続き,アドレスは "host" という形式になります。 ホストは, IP アドレスまたはゾーン付きの IPv6 アドレスでなければなりません。 オペレーティングシステムが "0" や "255" などのよく知られていないプロトコル番号でどのように動作するかは,各オペレーティングシステムによって異なります。

例 :

ダイヤル ("ip4:1", "192.0.2.1") ダイヤル ("ip6:ipv6-icmp", "2001:db8::1") ダイヤル ("ip6:58", "fe80::1%lo0")

TCP, UDP ,および IP ネットワークで,ホストが空であるか, TCP および UDP の場合は ":80", "0.0.0.0:80" ,または "[::]:80" のようにリテラルの未指定 IP アドレスの場合 IP の場合は "0.0.0.0" または "::" ,ローカルシステムが想定されます。

Unix ネットワークの場合,アドレスはファイルシステムパスでなければなりません。

func DialTimeout

func DialTimeout(network, address string, timeout time.Duration) (Conn, error)

DialTimeout は Dial のように機能しますが,タイムアウトします。

必要に応じて,タイムアウトには名前解決が含まれます。 TCP を使用し, address パラメータ内のホストが複数の IP アドレスに解決される場合,タイムアウトは連続する各ダイヤルに分散され,それぞれに接続時間の適切な割合が与えられます。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

func FileConn

func FileConn(f *os.File) (c Conn, err error)

FileConn は,開いているファイル f に対応するネットワーク接続のコピーを返します。 終了したら f を閉じるのは呼び出し側の責任です。 c を閉じても f には影響しません。 f を閉じても c には影響しません。

type DNSConfigError

DNSConfigError は,マシンの DNS 設定の読み取りエラーを表します。 (使用されなくなりました。 互換性のために保管されています。 )

type DNSConfigError struct {
    Err error
}

func (*DNSConfigError) Error

func (e *DNSConfigError) Error() string

func (*DNSConfigError) Temporary

func (e *DNSConfigError) Temporary() bool

func (*DNSConfigError) Timeout

func (e *DNSConfigError) Timeout() bool

func (*DNSConfigError) Unwrap

func (e *DNSConfigError) Unwrap() error

type DNSError

DNSError は DNS ルックアップエラーを表します。

type DNSError struct {
    Err         string // エラーの説明
    Name        string // 名前を探しました
    Server      string // 使用サーバー
    IsTimeout   bool   // 真の場合,タイムアウトしました。
    IsTimeout   bool   // すべてのタイムアウトがこれを設定するわけではありません
    IsTemporary bool   // 真の場合,エラーは一時的です。; added in Go 1.6
    IsTemporary bool   // すべてのエラーがこれを設定するわけではありません; added in Go 1.6
    IsNotFound  bool   // if true, host could not be found
}

func (*DNSError) Error

func (e *DNSError) Error() string

func (*DNSError) Is

func (e *DNSError) Is(target error) bool

func (*DNSError) Temporary

func (e *DNSError) Temporary() bool

一時エラーは, DNS エラーが一時的であることがわかっているかどうかを報告します。 これは必ずしも知られていません。 一時的なエラーが原因で DNS ルックアップが失敗し, Temporary が false を返す DNSError を返すことがあります。

func (*DNSError) Timeout

func (e *DNSError) Timeout() bool

タイムアウトは, DNS ルックアップがタイムアウトしたことがわかっているかどうかを報告します。 これは必ずしも知られていません。 DNS ルックアップはタイムアウトが原因で失敗し, Timeout が false を返す DNSError を返すことがあります。

type Dialer 1.1

ダイヤラには,アドレスに接続するためのオプションが含まれています。

各フィールドのゼロ値は,そのオプションなしでダイヤルするのと同じです。 したがって, Dialer のゼロ値でダイヤルすることは,単に Dial 機能を呼び出すことと同じです。

type Dialer struct {
    // タイムアウトは,ダイヤルが接続の完了を待つ最大時間です。
    // 締め切りも設定されている場合は,それ以前に失敗する可能性があります。
    //
    // デフォルトはタイムアウトなしです。
    //
    // TCP を使用し,複数の IP アドレスを持つホスト名をダイヤルするとき,タイムアウトはそれらの間で分割されるかもしれません。
    //
    // タイムアウトの有無にかかわらず,オペレーティングシステムはそれ自身のより早いタイムアウトを課すかもしれません。
    // たとえば, TCP タイムアウトは約 3 分です。
    Timeout time.Duration

    // 締め切りは,ダイヤルが失敗するまでの絶対的な時点です。
    // タイムアウトが設定されていると,早く失敗する可能性があります。
    // ゼロは期限がないことを意味するか,タイムアウトオプションと同様にオペレーティングシステムに依存します。
    Deadline time.Time

    // LocalAddr は,アドレスをダイヤルするときに使用するローカルアドレスです。
    // アドレスは,ダイヤルされるネットワークと互換性のある型でなければなりません。
    // nil の場合,ローカルアドレスが自動的に選択されます。
    LocalAddr Addr

    // DualStack は以前は "Happy Eyeballs" とも呼ばれる RFC 6555 Fast Fallback サポートを有効にしていました。
    // IPv6 の設定ミスやハングアップが見られた場合は,すぐに IPv4 が試されます。
    //
    // 非推奨 : デフォルトでは Fast Fallback が有効になっています。
    // 無効にするには, FallbackDelay を負の値に設定します。
    DualStack bool // Go 1.2

    // FallbackDelay は, RFC 6555 高速フォールバック接続を起動するまでの待機時間を指定します。
    // つまり,これは, IPv6 が正しく構成されていないと想定して IPv4 にフォールバックする前に, IPv6 が成功するのを待つ時間です。
    //
    // ゼロの場合, 300ms のデフォルト遅延が使用されます。
    // 負の値は高速フォールバックサポートを無効にします。
    FallbackDelay time.Duration // Go 1.5

    // KeepAlive specifies the interval between keep-alive
    // probes for an active network connection.
    // If zero, keep-alive probes are sent with a default value
    // (currently 15 seconds), if supported by the protocol and operating
    // system. Network protocols or operating systems that do
    // not support keep-alives ignore this field.
    // If negative, keep-alive probes are disabled.
    KeepAlive time.Duration // Go 1.3

    // リゾルバーは,使用する代替リゾルバーをオプションで指定します。
    Resolver *Resolver // Go 1.8

    // Cancel is an optional channel whose closure indicates that
    // the dial should be canceled. Not all types of dials support
    // cancellation.
    //
    // 非推奨 : 代わりに DialContext を使用してください。
    Cancel <-chan struct{} // Go 1.6

    // Control が nil 以外の場合は,ネットワーク接続を作成した後,実際にダイヤルする前に呼び出されます。
    //
    // Control メソッドに渡されるネットワークとアドレスのパラメータは,必ずしも Dial に渡されるものとは限りません。
    // たとえば, Dial に "tcp" を渡すと, Control 関数が "tcp4" または "tcp6" で呼び出されます。
    Control func(network, address string, c syscall.RawConn) error // Go 1.11
}

func (*Dialer) Dial 1.1

func (d *Dialer) Dial(network, address string) (Conn, error)

ダイヤルは,指定されたネットワーク上のアドレスに接続します。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

func (*Dialer) DialContext 1.7

func (d *Dialer) DialContext(ctx context.Context, network, address string) (Conn, error)

DialContext は,渡されたコンテキストを使用して,指定されたネットワーク上のアドレスに接続します。

渡された Context は nil 以外でなければなりません。 接続が完了する前にコンテキストが期限切れになると,エラーが返されます。 接続に成功すると,コンテキストの有効期限が切れても接続には影響しません。

TCP を使用し, address パラメータ内のホストが複数のネットワークアドレスに解決される場合,ダイヤルタイムアウト (d.Timeout または ctx から) は連続する各ダイヤルに分散され,それぞれに接続時間の適切な割合が与えられます。 たとえば,ホストに 4 つの IP アドレスがあり,タイムアウトが 1 分の場合,各アドレスへの接続は 15 秒で完了し,次のアドレスが試行されます。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

type Error

エラーはネットワークエラーを表します。

type Error interface {
    error
    Timeout() bool   // エラーはタイムアウトですか。
    Temporary() bool // 一時的なエラーですか ?
}

type Flags

type Flags uint
const (
    FlagUp           Flags = 1 << iota // インターフェースは稼働しています
    FlagBroadcast                      // インターフェースはブロードキャストアクセス機能をサポートします
    FlagLoopback                       // インターフェースはループバックインターフェースです
    FlagPointToPoint                   // インターフェースはポイントツーポイントリンクに属しています
    FlagMulticast                      // インターフェースはマルチキャストアクセス機能をサポート
)

func (Flags) String

func (f Flags) String() string

type HardwareAddr

HardwareAddr は物理ハードウェアアドレスを表します。

type HardwareAddr []byte

func ParseMAC

func ParseMAC(s string) (hw HardwareAddr, err error)

ParseMAC parses s as an IEEE 802 MAC-48, EUI-48, EUI-64, or a 20-octet IP over InfiniBand link-layer address using one of the following formats:

00:00:5e:00:53:01
02:00:5e:10:00:00:00:01
00:00:00:00:fe:80:00:00:00:00:00:00:02:00:5e:10:00:00:00:01
00-00-5e-00-53-01
02-00-5e-10-00-00-00-01
00-00-00-00-fe-80-00-00-00-00-00-00-02-00-5e-10-00-00-00-01
0000.5e00.5301
0200.5e10.0000.0001
0000.0000.fe80.0000.0000.0000.0200.5e10.0000.0001

func (HardwareAddr) String

func (a HardwareAddr) String() string

type IP

IP は 1 つの IP アドレス,バイトスライスです。 このパッケージの関数は,入力として 4 バイト (IPv4) または 16 バイト (IPv6) のスライスを受け入れます。

このドキュメントでは, IP アドレスを IPv4 アドレスまたは IPv6 アドレスと呼ぶことは,アドレスのセマンティックプロパティであり,バイトスライスの長さだけではありません。 16 バイトスライスを IPv4 アドレスにすることもできます。

type IP []byte

func IPv4

func IPv4(a, b, c, d byte) IP

IPv4 は, IPv4 アドレス a.b.c.d の IP アドレス (16 バイト形式) を返します。

コード:

fmt.Println(net.IPv4(8, 8, 8, 8))

// 出力 :8.8.8.8

func LookupIP

func LookupIP(host string) ([]IP, error)

LookupIP はローカルリゾルバを使ってホストを検索します。 それはそのホストの IPv4 と IPv6 アドレスのスライスを返します。

func ParseIP

func ParseIP(s string) IP

ParseIP は s を IP アドレスとして解析し,結果を返します。 文字列 s は,ドット付き 10 進数 ("192.0.2.1") または IPv6 ("2001:db8::68") の形式にすることができます。 s が IP アドレスの有効なテキスト表現ではない場合, ParseIP は nil を返します。

コード:

fmt.Println(net.ParseIP("192.0.2.1"))
fmt.Println(net.ParseIP("2001:db8::68"))
fmt.Println(net.ParseIP("192.0.2"))

// 出力 :192.0.2.12001:db8::68<nil>

func (IP) DefaultMask

func (ip IP) DefaultMask() IPMask

DefaultMask は, IP アドレス ip のデフォルト IP マスクを返します。 デフォルトマスクがあるのは IPv4 アドレスだけです。 ip が有効な IPv4 アドレスでない場合, DefaultMask は nil を返します。

コード:

ip := net.ParseIP("192.0.2.1")
fmt.Println(ip.DefaultMask())

// 出力 :ffffff00

func (IP) Equal

func (ip IP) Equal(x IP) bool

Equal は, ip と x が同じ IP アドレスかどうかを報告します。 IPv4 アドレスと IPv6 形式の同じアドレスは等しいと見なされます。

func (IP) IsGlobalUnicast

func (ip IP) IsGlobalUnicast() bool

IsGlobalUnicast は, ip がグローバルユニキャストアドレスかどうかを報告します。

グローバルユニキャストアドレスの識別には, IPv4 のブロードキャストアドレスを除く, RFC 1122, RFC 4632 ,および RFC 4291 で定義されているアドレス型の識別が使用されます。 ip が IPv4 プライベートアドレス空間またはローカル IPv6 ユニキャストアドレス空間にある場合でも, true が返されます。

func (IP) IsInterfaceLocalMulticast

func (ip IP) IsInterfaceLocalMulticast() bool

IsInterfaceLocalMulticast は, ip がインターフェースローカルマルチキャストアドレスかどうかを報告します。

func (IP) IsLinkLocalMulticast

func (ip IP) IsLinkLocalMulticast() bool

IsLinkLocalMulticast は, ip がリンクローカルマルチキャストアドレスかどうかを報告します。

func (IP) IsLinkLocalUnicast

func (ip IP) IsLinkLocalUnicast() bool

IsLinkLocalUnicast は, ip がリンクローカルユニキャストアドレスかどうかを報告します。

func (IP) IsLoopback

func (ip IP) IsLoopback() bool

IsLoopback は, ip がループバックアドレスかどうかを報告します。

func (IP) IsMulticast

func (ip IP) IsMulticast() bool

IsMulticast は, ip がマルチキャストアドレスかどうかを報告します。

func (IP) IsUnspecified

func (ip IP) IsUnspecified() bool

IsUnspecified は, ip が未指定のアドレス (IPv4 アドレス "0.0.0.0" または IPv6 アドレス "::") であるかどうかを報告します。

func (IP) MarshalText 1.2

func (ip IP) MarshalText() ([]byte, error)

MarshalText は encoding.TextMarshaler インターフェースを実装します。 エンコーディングは String が返すものと同じですが, 1 つ例外があります。 len(ip) がゼロの場合,空のスライスが返されます。

func (IP) Mask

func (ip IP) Mask(mask IPMask) IP

Mask は, IP アドレス ip を mask でマスクした結果を返します。

コード:

ipv4Addr := net.ParseIP("192.0.2.1")
// このマスクは, IPv4 の /24 サブネットに対応しています。
ipv4Mask := net.CIDRMask(24, 32)
fmt.Println(ipv4Addr.Mask(ipv4Mask))

ipv6Addr := net.ParseIP("2001:db8:a0b:12f0::1")
// このマスクは, IPv6 の /32 サブネットに対応しています。
ipv6Mask := net.CIDRMask(32, 128)
fmt.Println(ipv6Addr.Mask(ipv6Mask))

// 出力 :192.0.2.02001:db8::

func (IP) String

func (ip IP) String() string

String は, IP アドレス ip の文字列形式を返します。 次の 4 つの形式のいずれかを返します。 -ip の長さが 0 の場合は "<nil>"-ip または IPv4 または IP4 対応の IPv6 アドレスの場合はドット付き 10 進数 ("192.0.2.1")-IPv6("2001:db8::")1") , ip が有効な IPv6 アドレスの場合 - 他に当てはまらない場合は,句読点なしの 16 進形式の ip

func (IP) To16

func (ip IP) To16() IP

To16 は IP アドレス ip を 16 バイト表現に変換します。 ip が IP アドレスではない (長さが間違っている) 場合, To16 は nil を返します。

func (IP) To4

func (ip IP) To4() IP

To4 は, IPv4 アドレス ip を 4 バイト表現に変換します。 ip が IPv4 アドレスではない場合, To4 は nil を返します。

func (*IP) UnmarshalText 1.2

func (ip *IP) UnmarshalText(text []byte) error

UnmarshalText は encoding.TextUnmarshaler インターフェースを実装します。 IP アドレスは, ParseIP によって受け入れられる形式で予期されています。

type IPAddr

IPAddr は IP エンドポイントのアドレスを表します。

type IPAddr struct {
    IP   IP
    Zone string // IPv6 スコープアドレッシングゾーン; added in Go 1.1
}

func ResolveIPAddr

func ResolveIPAddr(network, address string) (*IPAddr, error)

ResolveIPAddr は IP エンドポイントのアドレスを返します。

ネットワークは IP ネットワーク名でなければなりません。

address パラメーター内のホストがリテラル IP アドレスではない場合, ResolveIPAddr はそのアドレスを IP エンドポイントのアドレスに解決します。 それ以外の場合は,アドレスをリテラル IP アドレスとして解析します。 address パラメータはホスト名を使用できますが,ホスト名の IP アドレスを 1 つしか返さないため,これはお勧めできません。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

func (*IPAddr) Network

func (a *IPAddr) Network() string

ネットワークはアドレスのネットワーク名 "ip" を返します。

func (*IPAddr) String

func (a *IPAddr) String() string

type IPConn

IPConn は, IP ネットワーク接続用の Conn および PacketConn インターフェースの実装です。

type IPConn struct {
    // エクスポートされていないフィールドがあります
}

func DialIP

func DialIP(network string, laddr, raddr *IPAddr) (*IPConn, error)

DialIP は IP ネットワークのためのダイヤルのように機能します。

ネットワークは IP ネットワーク名でなければなりません。 詳細は func ダイアルを見てください。

laddr が nil の場合,ローカルアドレスが自動的に選択されます。 raddr の IP フィールドが nil または未指定の IP アドレスの場合,ローカルシステムと見なされます。

func ListenIP

func ListenIP(network string, laddr *IPAddr) (*IPConn, error)

ListenIP は, IP ネットワーク用の ListenPacket のように機能します。

ネットワークは IP ネットワーク名でなければなりません。 詳細は func ダイアルを見てください。

laddr の IP フィールドが nil または未指定の IP アドレスの場合, ListenIP は,マルチキャスト IP アドレスを除く,ローカルシステムの使用可能なすべての IP アドレスで待機します。

func (*IPConn) Close

func (c *IPConn) Close() error

閉じるは接続を閉じます。

func (*IPConn) File

func (c *IPConn) File() (f *os.File, err error)

File returns a copy of the underlying os.File. It is the caller's responsibility to close f when finished. Closing c does not affect f, and closing f does not affect c.

返された os.File のファイル記述子は接続のものとは異なります。 この複製を使用してオリジナルのプロパティを変更しようとすると,目的の効果が得られる場合とそうでない場合があります。

func (*IPConn) LocalAddr

func (c *IPConn) LocalAddr() Addr

LocalAddr はローカルネットワークアドレスを返します。 返される Addr は LocalAddr のすべての呼び出しで共有されているので,変更しないでください。

func (*IPConn) Read

func (c *IPConn) Read(b []byte) (int, error)

Read は Conn Read メソッドを実装します。

func (*IPConn) ReadFrom

func (c *IPConn) ReadFrom(b []byte) (int, Addr, error)

ReadFrom は PacketConn の ReadFrom メソッドを実装します。

func (*IPConn) ReadFromIP

func (c *IPConn) ReadFromIP(b []byte) (int, *IPAddr, error)

ReadFromIP は ReadFrom のように機能しますが, IPAddr を返します。

func (*IPConn) ReadMsgIP 1.1

func (c *IPConn) ReadMsgIP(b, oob []byte) (n, oobn, flags int, addr *IPAddr, err error)

ReadMsgIP は c からメッセージを読み取り,ペイロードを b にコピーし,関連する帯域外データを oob にコピーします。 b にコピーされたバイト数, oob にコピーされたバイト数,メッセージに設定されたフラグ,およびメッセージの送信元アドレスを返します。

パッケージ golang.org/x/net/ipv4 および golang.org/x/net/ipv6 を使用して, oob の IP レベルのソケットオプションを操作できます。

func (*IPConn) RemoteAddr

func (c *IPConn) RemoteAddr() Addr

RemoteAddr はリモートネットワークアドレスを返します。 返される Addr は RemoteAddr のすべての呼び出しで共有されているので,変更しないでください。

func (*IPConn) SetDeadline

func (c *IPConn) SetDeadline(t time.Time) error

SetDeadline は Conn SetDeadline メソッドを実装します。

func (*IPConn) SetReadBuffer

func (c *IPConn) SetReadBuffer(bytes int) error

SetReadBuffer は,接続に関連付けられているオペレーティングシステムの受信バッファのサイズを設定します。

func (*IPConn) SetReadDeadline

func (c *IPConn) SetReadDeadline(t time.Time) error

SetReadDeadline は Conn SetReadDeadline メソッドを実装します。

func (*IPConn) SetWriteBuffer

func (c *IPConn) SetWriteBuffer(bytes int) error

SetWriteBuffer は,接続に関連付けられているオペレーティングシステムの送信バッファのサイズを設定します。

func (*IPConn) SetWriteDeadline

func (c *IPConn) SetWriteDeadline(t time.Time) error

SetWriteDeadline は Conn SetWriteDeadline メソッドを実装します。

func (*IPConn) SyscallConn 1.9

func (c *IPConn) SyscallConn() (syscall.RawConn, error)

SyscallConn は,生のネットワーク接続を返します。 これは syscall.Conn インターフェースを実装します。

func (*IPConn) Write

func (c *IPConn) Write(b []byte) (int, error)

Write は Conn Write メソッドを実装します。

func (*IPConn) WriteMsgIP 1.1

func (c *IPConn) WriteMsgIP(b, oob []byte, addr *IPAddr) (n, oobn int, err error)

WriteMsgIP は, c を介して addr にメッセージを書き込み, b のペイロードと oob の関連する帯域外データをコピーします。 書き込まれたペイロード数と帯域外バイト数を返します。

パッケージ golang.org/x/net/ipv4 および golang.org/x/net/ipv6 を使用して, oob の IP レベルのソケットオプションを操作できます。

func (*IPConn) WriteTo

func (c *IPConn) WriteTo(b []byte, addr Addr) (int, error)

WriteTo は PacketConn の WriteTo メソッドを実装します。

func (*IPConn) WriteToIP

func (c *IPConn) WriteToIP(b []byte, addr *IPAddr) (int, error)

WriteToIP は WriteTo のように機能しますが, IPAddr を取ります。

type IPMask

IP マスクは IP アドレスです。

type IPMask []byte

func CIDRMask

func CIDRMask(ones, bits int) IPMask

CIDRMask は, "1" の 1 ビットと,それに続く " 最大 " の " ビット " ビットまでの 0 からなる IP マスクを返します。 この形式のマスクの場合, CIDRMask は IPMask.Size の逆です。

コード:

// このマスクは, IPv4 の /31 サブネットに対応しています。
fmt.Println(net.CIDRMask(31, 32))

// このマスクは, IPv6 の /64 サブネットに対応しています。
fmt.Println(net.CIDRMask(64, 128))

// 出力 :fffffffeffffffffffffffff0000000000000000

func IPv4Mask

func IPv4Mask(a, b, c, d byte) IPMask

IPv4Mask は, IPv4 マスク a.b.c.d の IP マスク (4 バイト形式) を返します。

コード:

fmt.Println(net.IPv4Mask(255, 255, 255, 0))

// 出力 :ffffff00

func (IPMask) Size

func (m IPMask) Size() (ones, bits int)

Size は,マスク内の先頭の 1 の数と合計ビットを返します。 マスクが正準形式でない場合 (1 の後に 0 が続く) , Size は 0, 0 を返します。

func (IPMask) String

func (m IPMask) String() string

String は,句読点を付けずに m の 16 進形式を返します。

type IPNet

IPNet は IP ネットワークを表します。

type IPNet struct {
    IP   IP     // ネットワーク番号
    Mask IPMask // ネットワークマスク
}

func (*IPNet) Contains

func (n *IPNet) Contains(ip IP) bool

ネットワークに ip が含まれているかどうかのレポートが含まれます。

func (*IPNet) Network

func (n *IPNet) Network() string

ネットワークはアドレスのネットワーク名 "ip+net" を返します。

func (*IPNet) String

func (n *IPNet) String() string

RFC 4632 および RFC 4291 で定義されているように, String は "192.0.2.1/24" または "2001:db8::/48" のような n の CIDR 表記を返します。 マスクが正規形式でない場合は,次の文字列を返します。 "198.51.100.1/c000ff00" のように句読点を付けずに 16 進形式で表現されたスラッシュ文字とマスクが後に続く IP アドレス。

type Interface

インターフェースは,ネットワークインターフェース名とインデックス間のマッピングを表します。 また,ネットワークインターフェース機能情報も表します。

type Interface struct {
    Index        int          // 1 から始まる正の整数, 0 は使用されません
    MTU          int          // 最大伝送ユニット
    Name         string       // 例 :"en0" , "lo0" , "eth0.100"
    HardwareAddr HardwareAddr // IEEE MAC-48, EUI-48 ,および EUI-64 形式
    Flags        Flags        // 例 :FlagUp , FlagLoopback , FlagMulticast
}

func InterfaceByIndex

func InterfaceByIndex(index int) (*Interface, error)

InterfaceByIndex は, index で指定されたインターフェースを返します。

Solaris では,論理データリンクを共有する論理ネットワークインターフェースの 1 つを返します。 より正確には InterfaceByName を使用してください。

func InterfaceByName

func InterfaceByName(name string) (*Interface, error)

InterfaceByName は, name で指定されたインターフェースを返します。

func Interfaces

func Interfaces() ([]Interface, error)

Interfaces はシステムのネットワークインターフェースのリストを返します。

func (*Interface) Addrs

func (ifi *Interface) Addrs() ([]Addr, error)

Addrs は特定のインターフェースのユニキャストインターフェースアドレスのリストを返します。

func (*Interface) MulticastAddrs

func (ifi *Interface) MulticastAddrs() ([]Addr, error)

MulticastAddrs は,特定のインターフェースのマルチキャスト参加グループアドレスのリストを返します。

type InvalidAddrError

type InvalidAddrError string

func (InvalidAddrError) Error

func (e InvalidAddrError) Error() string

func (InvalidAddrError) Temporary

func (e InvalidAddrError) Temporary() bool

func (InvalidAddrError) Timeout

func (e InvalidAddrError) Timeout() bool

type ListenConfig 1.11

ListenConfig には,アドレスをリッスンするためのオプションが含まれています。

type ListenConfig struct {
    // Control が nil 以外の場合は,ネットワーク接続を作成した後,オペレーティングシステムにバインドする前に呼び出されます。
    //
    // Control メソッドに渡されるネットワークとアドレスのパラメータは,必ずしも Listen に渡されるものとは限りません。
    // たとえば, Listen に "tcp" を渡すと, Control 関数が "tcp4" または "tcp6" で呼び出されます。
    Control func(network, address string, c syscall.RawConn) error

    // KeepAlive specifies the keep-alive period for network
    // connections accepted by this listener.
    // If zero, keep-alives are enabled if supported by the protocol
    // and operating system. Network protocols or operating systems
    // that do not support keep-alives ignore this field.
    // If negative, keep-alives are disabled.
    KeepAlive time.Duration
}

func (*ListenConfig) Listen 1.11

func (lc *ListenConfig) Listen(ctx context.Context, network, address string) (Listener, error)

ローカルネットワークアドレスのアナウンスを聞きます。

ネットワークとアドレスのパラメータの説明については, func Listen を参照してください。

func (*ListenConfig) ListenPacket 1.11

func (lc *ListenConfig) ListenPacket(ctx context.Context, network, address string) (PacketConn, error)

ListenPacket はローカルネットワークアドレスについてアナウンスします。

ネットワークとアドレスのパラメータについては, func ListenPacket を参照してください。

type Listener

リスナーは,ストリーム指向プロトコル用の一般的なネットワークリスナーです。

複数のゴルーチンがリスナーのメソッドを平行に呼び出すことがあります。

type Listener interface {
    // Accept は待機して次の接続をリスナーに返します。
    Accept() (Conn, error)

    // 閉じるはリスナーを閉じます。
    // ブロックされた Accept 操作はすべてブロック解除され,エラーが返されます。
    Close() error

    // Addr はリスナーのネットワークアドレスを返します。
    Addr() Addr
}

コード:

// ローカルシステムの使用可能なすべてのユニキャストおよびエニーキャスト IP アドレスで TCP ポート 2000 をリッスンします。
l, err := net.Listen("tcp", ":2000")
if err != nil {
    log.Fatal(err)
}
defer l.Close()
for {
    // 接続を待ちます。
    conn, err := l.Accept()
    if err != nil {
        log.Fatal(err)
    }
    // 接続を新しいゴルーチンで処理します。
    // その後,ループは受け入れに戻り,複数の接続が平行に処理される可能性があります。
    go func(c net.Conn) {
        // すべての受信データをエコーし​​ます。
        io.Copy(c, c)
        // 接続を遮断してください。
        c.Close()
    }(conn)
}

func FileListener

func FileListener(f *os.File) (ln Listener, err error)

FileListener は,開いているファイル f に対応するネットワークリスナのコピーを返します。 終了したら ln を閉じるのは呼び出し側の責任です。 ln を閉じても f には影響しません。 f を閉じても ln には影響しません。

func Listen

func Listen(network, address string) (Listener, error)

ローカルネットワークアドレスのアナウンスを聞きます。

ネットワークは "tcp", "tcp4", "tcp6", "unix" ,または "unixpacket" でなければなりません。

TCP ネットワークの場合, address パラメータのホストが空またはリテラルの未指定の IP アドレスの場合, Listen はローカルシステムの使用可能なすべてのユニキャストおよびエニーキャスト IP アドレスを監視します。 IPv4 のみを使用するには,ネットワーク "tcp4" を使用してください。 アドレスにはホスト名を使用できますが,最大で 1 つのホストの IP アドレスに対してリスナーを作成するため,これはお勧めできません。 "127.0.0.1:" または "[::1]:0" のように, address パラメーターのポートが空または "0" の場合,ポート番号が自動的に選択されます。 Listener の Addr メソッドは,選択されたポートを発見するために使用することができます。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

type MX

MX は 1 つの DNS MX レコードを表します。

type MX struct {
    Host string
    Pref uint16
}

func LookupMX

func LookupMX(name string) ([]*MX, error)

LookupMX は,優先順に並べ替えられた,指定されたドメイン名の DNS MX レコードを返します。

type NS 1.1

NS は 1 つの DNS NS レコードを表します。

type NS struct {
    Host string
}

func LookupNS 1.1

func LookupNS(name string) ([]*NS, error)

LookupNS は,指定されたドメイン名の DNS NS レコードを返します。

type OpError

OpError は通常 net パッケージの関数から返されるエラー型です。 操作,ネットワークの種類,およびエラーのアドレスについて説明しています。

type OpError struct {
    // Op は, "read" や "write" など,エラーの原因となった操作です。
    Op string

    // Net は, "tcp" や "udp6" など,このエラーが発生したネットワークの種類です。
    Net string

    // Dial , Read , Write などのリモートネットワーク接続を含む操作の場合, Source は対応するローカルネットワークアドレスです。
    Source Addr // Go 1.5

    // Addr は,このエラーが発生したネットワークアドレスです。
    // Listen や SetDeadline などのローカル操作の場合, Addr は操作されているローカルエンドポイントのアドレスです。
    // Dial , Read , Write などのリモートネットワーク接続を含む操作の場合, Addr はその接続のリモートアドレスです。
    Addr Addr

    // Err は操作中に発生したエラーです。
    Err error
}

func (*OpError) Error

func (e *OpError) Error() string

func (*OpError) Is

func (e *OpError) Is(target error) bool

func (*OpError) Temporary

func (e *OpError) Temporary() bool

func (*OpError) Timeout

func (e *OpError) Timeout() bool

func (*OpError) Unwrap

func (e *OpError) Unwrap() error

type PacketConn

PacketConn は一般的なパケット指向のネットワーク接続です。

複数のゴルーチンが PacketConn のメソッドを平行に呼び出すことができます。

type PacketConn interface {
    // ReadFrom は接続からパケットを読み取り,ペイロードを p にコピーします。
    // p にコピーされたバイト数とパケット上のリターンアドレスを返します。
    // 読み込んだバイト数 (0 <= n <= len(p)) と発生したエラーを返します。
    // 呼び出し側は,エラー err を考慮する前に,返された n > 0 バイトを常に処理する必要があります。
    // ReadFrom をタイムアウトにして, Timeout() == true を指定して Error を返すようにすることができます。
    // SetDeadline と SetReadDeadline を参照してください。
    ReadFrom(p []byte) (n int, addr Addr, err error)

    // WriteTo はペイロード p のパケットを addr に書き込みます。
    // WriteTo をタイムアウトさせ, Timeout() == true を指定して一定の時間制限の後に Error を返すことができます。
    // SetDeadline と SetWriteDeadline を参照してください。
    // パケット指向の接続では,書き込みタイムアウトはまれです。
    WriteTo(p []byte, addr Addr) (n int, err error)

    // 閉じるは接続を閉じます。
    // Any blocked ReadFrom or WriteTo operations will be unblocked and return errors.
    Close() error

    // LocalAddr はローカルネットワークアドレスを返します。
    LocalAddr() Addr

    // SetDeadline は,接続に関連付けられている読み取り期限と書き込み期限を設定します。
    // これは, SetReadDeadline と SetWriteDeadline の両方を呼び出すのと同じです。
    //
    // デッドラインとは, I/O 操作がブロックされるのではなくタイムアウト (型 Error を参照) で失敗するまでの絶対時間です。
    // 締め切りは,直後の ReadFrom または WriteTo への呼び出しだけでなく,将来および保留中のすべての入出力に適用されます。
    // 期限を過ぎた後は,将来期限を設定して接続を更新できます。
    //
    // ReadFrom または WriteTo 呼び出しが成功した後に期限を繰り返し延長することで,アイドルタイムアウトを実装できます。
    //
    // t のゼロ値は,入出力操作がタイムアウトにならないことを意味します。
    SetDeadline(t time.Time) error

    // SetReadDeadline は,将来の ReadFrom 呼び出しおよび現在ブロックされている ReadFrom 呼び出しの期限を設定します。
    // t がゼロの場合, ReadFrom はタイムアウトしません。
    SetReadDeadline(t time.Time) error

    // SetWriteDeadline は,将来の WriteTo 呼び出しおよび現在ブロックされている WriteTo 呼び出しの期限を設定します。
    // 書き込みがタイムアウトしても, n > 0 が返され,データの一部が正常に書き込まれたことを示します。
    // t がゼロの場合, WriteTo はタイムアウトしません。
    SetWriteDeadline(t time.Time) error
}

func FilePacketConn

func FilePacketConn(f *os.File) (c PacketConn, err error)

FilePacketConn は,開いているファイル f に対応するパケットネットワーク接続のコピーを返します。 終了したら f を閉じるのは呼び出し側の責任です。 c を閉じても f には影響しません。 f を閉じても c には影響しません。

func ListenPacket

func ListenPacket(network, address string) (PacketConn, error)

ListenPacket はローカルネットワークアドレスについてアナウンスします。

ネットワークは, "udp", "udp4", "udp6", "unixgram" ,または IP トランスポートでなければなりません。 IP トランスポートは, "ip", "ip4" ,または "ip6" の後にコロンとリテラルプロトコル番号またはプロトコル名を続けたものです ("ip:1" または "ip:icmp" など) 。

UDP および IP ネットワークの場合, address パラメーターのホストが空またはリテラルの未指定 IP アドレスの場合, ListenPacket はマルチキャスト IP アドレスを除くローカルシステムの使用可能なすべての IP アドレスを listen します。 IPv4 のみを使用するには,ネットワーク "udp4" または "ip4:proto" を使用してください。 アドレスにはホスト名を使用できますが,最大で 1 つのホストの IP アドレスに対してリスナーを作成するため,これはお勧めできません。 "127.0.0.1:" または "[::1]:0" のように, address パラメーターのポートが空または "0" の場合,ポート番号が自動的に選択されます。 PacketConn の LocalAddr メソッドを使用して,選択したポートを見つけることができます。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

type ParseError

ParseError は,リテラルネットワークアドレスパーサのエラー型です。

type ParseError struct {
    // 型は, "IP アドレス ", "CIDR アドレス " など,予想された文字列の型です。
    Type string

    // テキストは不正なテキスト文字列です。
    Text string
}

func (*ParseError) Error

func (e *ParseError) Error() string

type Resolver 1.8

リゾルバーは名前と番号を調べます。

nil * リゾルバーはゼロリゾルバーと同等です。

type Resolver struct {
    // PreferGo は, Go の組み込み DNS リゾルバが利用可能なプラットフォームで優先されるかどうかを制御します。
    // GODEBUG=netdns=go と設定するのと同じですが,スコープはこのリゾルバだけになります。
    PreferGo bool

    // StrictErrors は, Go の組み込みリゾルバを使うときの一時的なエラー (タイムアウト,ソケットエラー, SERVFAIL を含む) の振る舞いを制御します。
    // 複数のサブクエリで構成されるクエリ (A+AAAA アドレス検索, DNS 検索リストの検索など) の場合,このオプションを使用すると,部分的な結果が返されるのではなく,クエリ全体が中止されます。
    // AAAA クエリを誤って処理するリゾルバとの互換性に影響を与える可能性があるため,これはデフォルトでは有効になっていません。
    StrictErrors bool // Go 1.9

    // Dial は, Go の組み込み DNS リゾルバが DNS サービスへの TCP および UDP 接続を行うために使用する代替ダイヤラをオプションで指定します。
    // address パラメーターのホストは常にホスト名ではなくリテラル IP アドレスになり, address パラメーターのポートはサービス名ではなくリテラルポート番号になります。
    // 返された Conn も PacketConn の場合,送受信された DNS メッセージは RFC 1035 のセクション 4.2.1"UDP の使用法 " に準拠する必要があります。
    // それ以外の場合, Conn を介して送信される DNS メッセージは, RFC 7766 のセクション 5" トランスポートプロトコルの選択 " に準拠する必要があります。
    // nil の場合,デフォルトのダイヤラが使用されます。
    Dial func(ctx context.Context, network, address string) (Conn, error) // Go 1.9
    // エクスポートされていないフィールドがあります
}

func (*Resolver) LookupAddr 1.8

func (r *Resolver) LookupAddr(ctx context.Context, addr string) (names []string, err error)

LookupAddr は指定されたアドレスに対して逆引きを実行し,そのアドレスにマッピングされている名前のリストを返します。

func (*Resolver) LookupCNAME 1.8

func (r *Resolver) LookupCNAME(ctx context.Context, host string) (cname string, err error)

LookupCNAME は与えられたホストの正規の名前を返します。 正規名を気にしない呼び出し元は, LookupHost または LookupIP を直接呼び出すことができます。 どちらも,検索の一部として正規名を解決するように注意します。

正規名は,ゼロ個以上の CNAME レコードをたどった後の最終名です。 ホストが DNS "CNAME" レコードを含まない場合でも,ホストがアドレスレコードを解決する限り, LookupCNAME はエラーを返しません。

func (*Resolver) LookupHost 1.8

func (r *Resolver) LookupHost(ctx context.Context, host string) (addrs []string, err error)

LookupHost はローカルリゾルバを使って与えられたホストを検索します。 そのホストのアドレスのスライスを返します。

func (*Resolver) LookupIPAddr 1.8

func (r *Resolver) LookupIPAddr(ctx context.Context, host string) ([]IPAddr, error)

LookupIPAddr はローカルリゾルバを使用してホストを検索します。 それはそのホストの IPv4 と IPv6 アドレスのスライスを返します。

func (*Resolver) LookupMX 1.8

func (r *Resolver) LookupMX(ctx context.Context, name string) ([]*MX, error)

LookupMX は,優先順に並べ替えられた,指定されたドメイン名の DNS MX レコードを返します。

func (*Resolver) LookupNS 1.8

func (r *Resolver) LookupNS(ctx context.Context, name string) ([]*NS, error)

LookupNS は,指定されたドメイン名の DNS NS レコードを返します。

func (*Resolver) LookupPort 1.8

func (r *Resolver) LookupPort(ctx context.Context, network, service string) (port int, err error)

LookupPort は与えられたネットワークとサービスのポートを検索します。

func (*Resolver) LookupSRV 1.8

func (r *Resolver) LookupSRV(ctx context.Context, service, proto, name string) (cname string, addrs []*SRV, err error)

LookupSRV は,指定されたサービス,プロトコル,およびドメイン名の SRV クエリを解決しようとします。 プロトは "tcp" または "udp" です。 返されたレコードは優先順位でソートされ,優先順位内の重みでランダム化されます。

LookupSRV は, RFC 2782 に準拠してルックアップするように DNS 名を構成します。 つまり, _service._proto.name をルックアップします。 SRV レコードを非標準の名前で公開するサービスに対応するために, service と proto の両方が空の文字列の場合, LookupSRV は直接 name を検索します。

func (*Resolver) LookupTXT 1.8

func (r *Resolver) LookupTXT(ctx context.Context, name string) ([]string, error)

LookupTXT は,指定されたドメイン名の DNS TXT レコードを返します。

type SRV

SRV は 1 つの DNS SRV レコードを表します。

type SRV struct {
    Target   string
    Port     uint16
    Priority uint16
    Weight   uint16
}

func LookupSRV

func LookupSRV(service, proto, name string) (cname string, addrs []*SRV, err error)

LookupSRV は,指定されたサービス,プロトコル,およびドメイン名の SRV クエリを解決しようとします。 プロトは "tcp" または "udp" です。 返されたレコードは優先順位でソートされ,優先順位内の重みでランダム化されます。

LookupSRV は, RFC 2782 に準拠してルックアップするように DNS 名を構成します。 つまり, _service._proto.name をルックアップします。 SRV レコードを非標準の名前で公開するサービスに対応するために, service と proto の両方が空の文字列の場合, LookupSRV は直接 name を検索します。

type TCPAddr

TCPAddr は, TCP エンドポイントのアドレスを表します。

type TCPAddr struct {
    IP   IP
    Port int
    Zone string // IPv6 スコープアドレッシングゾーン; added in Go 1.1
}

func ResolveTCPAddr

func ResolveTCPAddr(network, address string) (*TCPAddr, error)

ResolveTCPAddr は TCP エンドポイントのアドレスを返します。

ネットワークは TCP ネットワーク名でなければなりません。

address パラメーター内のホストがリテラル IP アドレスではない場合,またはポートがリテラルポート番号ではない場合, ResolveTCPAddr はアドレスを TCP エンドポイントのアドレスに解決します。 それ以外の場合は,アドレスをリテラル IP アドレスとポート番号のペアとして解析します。 address パラメータはホスト名を使用できますが,ホスト名の IP アドレスを 1 つしか返さないため,これはお勧めできません。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

func (*TCPAddr) Network

func (a *TCPAddr) Network() string

ネットワークはアドレスのネットワーク名 "tcp" を返します。

func (*TCPAddr) String

func (a *TCPAddr) String() string

type TCPConn

TCPConn は, TCP ネットワーク接続用の Conn インターフェースの実装です。

type TCPConn struct {
    // エクスポートされていないフィールドがあります
}

func DialTCP

func DialTCP(network string, laddr, raddr *TCPAddr) (*TCPConn, error)

DialTCP は TCP ネットワークのためのダイヤルのように機能します。

ネットワークは TCP ネットワーク名でなければなりません。 詳細は func ダイアルを見てください。

laddr が nil の場合,ローカルアドレスが自動的に選択されます。 raddr の IP フィールドが nil または未指定の IP アドレスの場合,ローカルシステムと見なされます。

func (*TCPConn) Close

func (c *TCPConn) Close() error

閉じるは接続を閉じます。

func (*TCPConn) CloseRead

func (c *TCPConn) CloseRead() error

CloseRead は, TCP 接続の読み取り側をシャットダウンします。 ほとんどの呼び出し元はただ閉じるを使うべきです。

func (*TCPConn) CloseWrite

func (c *TCPConn) CloseWrite() error

CloseWrite は TCP 接続の書き込み側をシャットダウンします。 ほとんどの呼び出し元はただ閉じるを使うべきです。

func (*TCPConn) File

func (c *TCPConn) File() (f *os.File, err error)

File returns a copy of the underlying os.File. It is the caller's responsibility to close f when finished. Closing c does not affect f, and closing f does not affect c.

返された os.File のファイル記述子は接続のものとは異なります。 この複製を使用してオリジナルのプロパティを変更しようとすると,目的の効果が得られる場合とそうでない場合があります。

func (*TCPConn) LocalAddr

func (c *TCPConn) LocalAddr() Addr

LocalAddr はローカルネットワークアドレスを返します。 返される Addr は LocalAddr のすべての呼び出しで共有されているので,変更しないでください。

func (*TCPConn) Read

func (c *TCPConn) Read(b []byte) (int, error)

Read は Conn Read メソッドを実装します。

func (*TCPConn) ReadFrom

func (c *TCPConn) ReadFrom(r io.Reader) (int64, error)

ReadFrom は io.ReaderFrom ReadFrom メソッドを実装します。

func (*TCPConn) RemoteAddr

func (c *TCPConn) RemoteAddr() Addr

RemoteAddr はリモートネットワークアドレスを返します。 返される Addr は RemoteAddr のすべての呼び出しで共有されているので,変更しないでください。

func (*TCPConn) SetDeadline

func (c *TCPConn) SetDeadline(t time.Time) error

SetDeadline は Conn SetDeadline メソッドを実装します。

func (*TCPConn) SetKeepAlive

func (c *TCPConn) SetKeepAlive(keepalive bool) error

SetKeepAlive sets whether the operating system should send keep-alive messages on the connection.

func (*TCPConn) SetKeepAlivePeriod 1.2

func (c *TCPConn) SetKeepAlivePeriod(d time.Duration) error

SetKeepAlivePeriod sets period between keep-alives.

func (*TCPConn) SetLinger

func (c *TCPConn) SetLinger(sec int) error

SetLinger は,送信または確認されるのを待っているデータがまだある接続に対して Close の動作を設定します。

sec < 0 (デフォルト) の場合,オペレーティングシステムはバックグラウンドでデータの送信を終了します。

sec == 0 の場合,オペレーティングシステムは未送信または未確認のデータを破棄します。

sec > 0 の場合,データは sec < 0 の場合と同様にバックグラウンドで送信されます。 一部のオペレーティングシステムでは, sec 秒が経過した後に未送信の残りのデータが破棄されることがあります。

func (*TCPConn) SetNoDelay

func (c *TCPConn) SetNoDelay(noDelay bool) error

SetNoDelay は,より少ないパケットを送信することを期待して,オペレーティングシステムがパケット送信を遅らせるべきかどうかを制御します (Nagle のアルゴリズム) 。 デフォルトは true (遅延なし) で,書き込み後できるだけ早くデータが送信されることを意味します。

func (*TCPConn) SetReadBuffer

func (c *TCPConn) SetReadBuffer(bytes int) error

SetReadBuffer は,接続に関連付けられているオペレーティングシステムの受信バッファのサイズを設定します。

func (*TCPConn) SetReadDeadline

func (c *TCPConn) SetReadDeadline(t time.Time) error

SetReadDeadline は Conn SetReadDeadline メソッドを実装します。

func (*TCPConn) SetWriteBuffer

func (c *TCPConn) SetWriteBuffer(bytes int) error

SetWriteBuffer は,接続に関連付けられているオペレーティングシステムの送信バッファのサイズを設定します。

func (*TCPConn) SetWriteDeadline

func (c *TCPConn) SetWriteDeadline(t time.Time) error

SetWriteDeadline は Conn SetWriteDeadline メソッドを実装します。

func (*TCPConn) SyscallConn 1.9

func (c *TCPConn) SyscallConn() (syscall.RawConn, error)

SyscallConn は,生のネットワーク接続を返します。 これは syscall.Conn インターフェースを実装します。

func (*TCPConn) Write

func (c *TCPConn) Write(b []byte) (int, error)

Write は Conn Write メソッドを実装します。

type TCPListener

TCPListener は TCP ネットワークリスナーです。 クライアントは通常 TCP を想定せずに Listener 型の変数を使用するべきです。

type TCPListener struct {
    // エクスポートされていないフィールドがあります
}

func ListenTCP

func ListenTCP(network string, laddr *TCPAddr) (*TCPListener, error)

ListenTCP は, TCP ネットワークの待機のように機能します。

ネットワークは TCP ネットワーク名でなければなりません。 詳細は func ダイアルを見てください。

laddr の IP フィールドが nil または未指定の IP アドレスの場合, ListenTCP はローカルシステムの使用可能なすべてのユニキャストおよびエニーキャスト IP アドレスを待ち受けます。 laddr の Port フィールドが 0 の場合,ポート番号が自動的に選択されます。

func (*TCPListener) Accept

func (l *TCPListener) Accept() (Conn, error)

Accept は Listener インターフェースに Accept メソッドを実装します。 次の呼び出しを待って一般的な Conn を返します。

func (*TCPListener) AcceptTCP

func (l *TCPListener) AcceptTCP() (*TCPConn, error)

AcceptTCP は次の着信を受け入れ,新しい接続を返します。

func (*TCPListener) Addr

func (l *TCPListener) Addr() Addr

Addr は,リスナーのネットワークアドレス, *TCPAddr を返します。 返される Addr は Addr のすべての呼び出しで共有されているので,変更しないでください。

func (*TCPListener) Close

func (l *TCPListener) Close() error

閉じると, TCP アドレスの監視が停止します。 承認済みの接続は閉じられません。

func (*TCPListener) File

func (l *TCPListener) File() (f *os.File, err error)

File は内部の os.File のコピーを返します。 終了したら f を閉じるのは呼び出し側の責任です。 l を閉じても f には影響しません。 f を閉じても l には影響しません。

返された os.File のファイル記述子は接続のものとは異なります。 この複製を使用してオリジナルのプロパティを変更しようとすると,目的の効果が得られる場合とそうでない場合があります。

func (*TCPListener) SetDeadline

func (l *TCPListener) SetDeadline(t time.Time) error

SetDeadline は,リスナーに関連付けられている期限を設定します。 ゼロの時間値は期限を無効にします。

func (*TCPListener) SyscallConn 1.10

func (l *TCPListener) SyscallConn() (syscall.RawConn, error)

SyscallConn は,生のネットワーク接続を返します。 これは syscall.Conn インターフェースを実装します。

返された RawConn は, Control の呼び出しのみをサポートしています。 Read と Write はエラーを返します。

type UDPAddr

UDPAddr は, UDP エンドポイントのアドレスを表します。

type UDPAddr struct {
    IP   IP
    Port int
    Zone string // IPv6 スコープアドレッシングゾーン; added in Go 1.1
}

func ResolveUDPAddr

func ResolveUDPAddr(network, address string) (*UDPAddr, error)

ResolveUDPAddr は UDP エンドポイントのアドレスを返します。

ネットワークは UDP ネットワーク名でなければなりません。

address パラメーター内のホストがリテラル IP アドレスではない場合,またはポートがリテラルポート番号ではない場合, ResolveUDPAddr はアドレスを UDP エンドポイントのアドレスに解決します。 それ以外の場合は,アドレスをリテラル IP アドレスとポート番号のペアとして解析します。 address パラメータはホスト名を使用できますが,ホスト名の IP アドレスを 1 つしか返さないため,これはお勧めできません。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

func (*UDPAddr) Network

func (a *UDPAddr) Network() string

ネットワークはアドレスのネットワーク名 "udp" を返します。

func (*UDPAddr) String

func (a *UDPAddr) String() string

type UDPConn

UDPConn は, UDP ネットワーク接続用の Conn および PacketConn インターフェースの実装です。

type UDPConn struct {
    // エクスポートされていないフィールドがあります
}

func DialUDP

func DialUDP(network string, laddr, raddr *UDPAddr) (*UDPConn, error)

DialUDP は UDP ネットワークのためのダイヤルのように機能します。

ネットワークは UDP ネットワーク名でなければなりません。 詳細は func ダイアルを見てください。

laddr が nil の場合,ローカルアドレスが自動的に選択されます。 raddr の IP フィールドが nil または未指定の IP アドレスの場合,ローカルシステムと見なされます。

func ListenMulticastUDP

func ListenMulticastUDP(network string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error)

ListenMulticastUDP は UDP ネットワーク用の ListenPacket のように機能しますが,特定のネットワークインターフェース上でグループアドレスを取ります。

ネットワークは UDP ネットワーク名でなければなりません。 詳細は func ダイアルを見てください。

ListenMulticastUDP は,グループのマルチキャスト IP アドレスを含む,ローカルシステムの使用可能なすべての IP アドレスをリッスンします。 ifi が nil の場合, ListenMulticastUDP はシステム割り当てマルチキャストインターフェースを使用しますが,割り当てはプラットフォームに依存し,場合によってはルーティング設定が必要になる可能性があるため推奨されません。 gaddr の Port フィールドが 0 の場合,ポート番号が自動的に選択されます。

ListenMulticastUDP は,単純で小規模なアプリケーションの便宜のためだけのものです。 一般的な用途のための golang.org/x/net/ipv4 と golang.org/x/net/ipv6 パッケージがあります。

func ListenUDP

func ListenUDP(network string, laddr *UDPAddr) (*UDPConn, error)

ListenUDP は, UDP ネットワーク用の ListenPacket のように機能します。

ネットワークは UDP ネットワーク名でなければなりません。 詳細は func ダイアルを見てください。

laddr の IP フィールドが nil または未指定の IP アドレスの場合, ListenUDP はマルチキャスト IP アドレスを除く,ローカルシステムの使用可能なすべての IP アドレスで待機します。 laddr の Port フィールドが 0 の場合,ポート番号が自動的に選択されます。

func (*UDPConn) Close

func (c *UDPConn) Close() error

閉じるは接続を閉じます。

func (*UDPConn) File

func (c *UDPConn) File() (f *os.File, err error)

File returns a copy of the underlying os.File. It is the caller's responsibility to close f when finished. Closing c does not affect f, and closing f does not affect c.

返された os.File のファイル記述子は接続のものとは異なります。 この複製を使用してオリジナルのプロパティを変更しようとすると,目的の効果が得られる場合とそうでない場合があります。

func (*UDPConn) LocalAddr

func (c *UDPConn) LocalAddr() Addr

LocalAddr はローカルネットワークアドレスを返します。 返される Addr は LocalAddr のすべての呼び出しで共有されているので,変更しないでください。

func (*UDPConn) Read

func (c *UDPConn) Read(b []byte) (int, error)

Read は Conn Read メソッドを実装します。

func (*UDPConn) ReadFrom

func (c *UDPConn) ReadFrom(b []byte) (int, Addr, error)

ReadFrom は PacketConn の ReadFrom メソッドを実装します。

func (*UDPConn) ReadFromUDP

func (c *UDPConn) ReadFromUDP(b []byte) (int, *UDPAddr, error)

ReadFromUDP は ReadFrom のように機能しますが, UDPAddr を返します。

func (*UDPConn) ReadMsgUDP 1.1

func (c *UDPConn) ReadMsgUDP(b, oob []byte) (n, oobn, flags int, addr *UDPAddr, err error)

ReadMsgUDP は c からメッセージを読み取り,ペイロードを b に,関連する帯域外データを oob にコピーします。 b にコピーされたバイト数, oob にコピーされたバイト数,メッセージに設定されたフラグ,およびメッセージの送信元アドレスを返します。

パッケージ golang.org/x/net/ipv4 および golang.org/x/net/ipv6 を使用して, oob の IP レベルのソケットオプションを操作できます。

func (*UDPConn) RemoteAddr

func (c *UDPConn) RemoteAddr() Addr

RemoteAddr はリモートネットワークアドレスを返します。 返される Addr は RemoteAddr のすべての呼び出しで共有されているので,変更しないでください。

func (*UDPConn) SetDeadline

func (c *UDPConn) SetDeadline(t time.Time) error

SetDeadline は Conn SetDeadline メソッドを実装します。

func (*UDPConn) SetReadBuffer

func (c *UDPConn) SetReadBuffer(bytes int) error

SetReadBuffer は,接続に関連付けられているオペレーティングシステムの受信バッファのサイズを設定します。

func (*UDPConn) SetReadDeadline

func (c *UDPConn) SetReadDeadline(t time.Time) error

SetReadDeadline は Conn SetReadDeadline メソッドを実装します。

func (*UDPConn) SetWriteBuffer

func (c *UDPConn) SetWriteBuffer(bytes int) error

SetWriteBuffer は,接続に関連付けられているオペレーティングシステムの送信バッファのサイズを設定します。

func (*UDPConn) SetWriteDeadline

func (c *UDPConn) SetWriteDeadline(t time.Time) error

SetWriteDeadline は Conn SetWriteDeadline メソッドを実装します。

func (*UDPConn) SyscallConn 1.9

func (c *UDPConn) SyscallConn() (syscall.RawConn, error)

SyscallConn は,生のネットワーク接続を返します。 これは syscall.Conn インターフェースを実装します。

func (*UDPConn) Write

func (c *UDPConn) Write(b []byte) (int, error)

Write は Conn Write メソッドを実装します。

func (*UDPConn) WriteMsgUDP 1.1

func (c *UDPConn) WriteMsgUDP(b, oob []byte, addr *UDPAddr) (n, oobn int, err error)

WriteMsgUDP は, c が接続されていない場合は c を介して c を介して addr にメッセージを書き込み, c が接続されている場合は c のリモートアドレスにメッセージを書き込みます (この場合, addr は nil でなければなりません) 。 ペイロードは b からコピーされ,関連する帯域外データは oob からコピーされます。 書き込まれたペイロード数と帯域外バイト数を返します。

パッケージ golang.org/x/net/ipv4 および golang.org/x/net/ipv6 を使用して, oob の IP レベルのソケットオプションを操作できます。

func (*UDPConn) WriteTo

func (c *UDPConn) WriteTo(b []byte, addr Addr) (int, error)

WriteTo は PacketConn の WriteTo メソッドを実装します。

コード:

// Dial とは異なり, ListenPacket はピアとの関連付けなしに接続を作成します。
conn, err := net.ListenPacket("udp", ":0")
if err != nil {
    log.Fatal(err)
}
defer conn.Close()

dst, err := net.ResolveUDPAddr("udp", "192.0.2.1:2000")
if err != nil {
    log.Fatal(err)
}

// 接続は,希望のアドレスにデータを書き込むことができます。
_, err = conn.WriteTo([]byte("data"), dst)
if err != nil {
    log.Fatal(err)
}

func (*UDPConn) WriteToUDP

func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (int, error)

WriteToUDP は WriteTo のように機能しますが, UDPAddr を取ります。

type UnixAddr

UnixAddr は, Unix ドメインソケットのエンドポイントのアドレスを表します。

type UnixAddr struct {
    Name string
    Net  string
}

func ResolveUnixAddr

func ResolveUnixAddr(network, address string) (*UnixAddr, error)

ResolveUnixAddr は, Unix ドメインソケットエンドポイントのアドレスを返します。

ネットワークは Unix ネットワーク名でなければなりません。

ネットワークとアドレスのパラメータの説明については, func Dial を参照してください。

func (*UnixAddr) Network

func (a *UnixAddr) Network() string

ネットワークはアドレスのネットワーク名, "unix", "unixgram" ,または "unixpacket" を返します。

func (*UnixAddr) String

func (a *UnixAddr) String() string

type UnixConn

UnixConn は, Unix ドメインソケットへの接続用の Conn インターフェースの実装です。

type UnixConn struct {
    // エクスポートされていないフィールドがあります
}

func DialUnix

func DialUnix(network string, laddr, raddr *UnixAddr) (*UnixConn, error)

DialUnix は Unix ネットワークのためのダイヤルのように機能します。

ネットワークは Unix ネットワーク名でなければなりません。 詳細は func ダイアルを見てください。

laddr が nil 以外の場合は,接続のローカルアドレスとして使用されます。

func ListenUnixgram 1.1

func ListenUnixgram(network string, laddr *UnixAddr) (*UnixConn, error)

ListenUnixgram は, Unix ネットワーク用の ListenPacket のように機能します。

ネットワークは "unixgram" でなければなりません。

func (*UnixConn) Close

func (c *UnixConn) Close() error

閉じるは接続を閉じます。

func (*UnixConn) CloseRead 1.1

func (c *UnixConn) CloseRead() error

CloseRead は, Unix ドメイン接続の読み取り側をシャットダウンします。 ほとんどの呼び出し元はただ閉じるを使うべきです。

func (*UnixConn) CloseWrite 1.1

func (c *UnixConn) CloseWrite() error

CloseWrite は, Unix ドメイン接続の書き込み側をシャットダウンします。 ほとんどの呼び出し元はただ閉じるを使うべきです。

func (*UnixConn) File

func (c *UnixConn) File() (f *os.File, err error)

File returns a copy of the underlying os.File. It is the caller's responsibility to close f when finished. Closing c does not affect f, and closing f does not affect c.

返された os.File のファイル記述子は接続のものとは異なります。 この複製を使用してオリジナルのプロパティを変更しようとすると,目的の効果が得られる場合とそうでない場合があります。

func (*UnixConn) LocalAddr

func (c *UnixConn) LocalAddr() Addr

LocalAddr はローカルネットワークアドレスを返します。 返される Addr は LocalAddr のすべての呼び出しで共有されているので,変更しないでください。

func (*UnixConn) Read

func (c *UnixConn) Read(b []byte) (int, error)

Read は Conn Read メソッドを実装します。

func (*UnixConn) ReadFrom

func (c *UnixConn) ReadFrom(b []byte) (int, Addr, error)

ReadFrom は PacketConn の ReadFrom メソッドを実装します。

func (*UnixConn) ReadFromUnix

func (c *UnixConn) ReadFromUnix(b []byte) (int, *UnixAddr, error)

ReadFromUnix は ReadFrom のように機能しますが, UnixAddr を返します。

func (*UnixConn) ReadMsgUnix

func (c *UnixConn) ReadMsgUnix(b, oob []byte) (n, oobn, flags int, addr *UnixAddr, err error)

ReadMsgUnix は c からメッセージを読み取り,ペイロードを b に,関連する帯域外データを oob にコピーします。 b にコピーされたバイト数, oob にコピーされたバイト数,メッセージに設定されたフラグ,およびメッセージの送信元アドレスを返します。

len(b) == 0 かつ len(oob) > 0 の場合でも,この関数は接続から 1 バイトを読み込みます (そして破棄します) 。

func (*UnixConn) RemoteAddr

func (c *UnixConn) RemoteAddr() Addr

RemoteAddr はリモートネットワークアドレスを返します。 返される Addr は RemoteAddr のすべての呼び出しで共有されているので,変更しないでください。

func (*UnixConn) SetDeadline

func (c *UnixConn) SetDeadline(t time.Time) error

SetDeadline は Conn SetDeadline メソッドを実装します。

func (*UnixConn) SetReadBuffer

func (c *UnixConn) SetReadBuffer(bytes int) error

SetReadBuffer は,接続に関連付けられているオペレーティングシステムの受信バッファのサイズを設定します。

func (*UnixConn) SetReadDeadline

func (c *UnixConn) SetReadDeadline(t time.Time) error

SetReadDeadline は Conn SetReadDeadline メソッドを実装します。

func (*UnixConn) SetWriteBuffer

func (c *UnixConn) SetWriteBuffer(bytes int) error

SetWriteBuffer は,接続に関連付けられているオペレーティングシステムの送信バッファのサイズを設定します。

func (*UnixConn) SetWriteDeadline

func (c *UnixConn) SetWriteDeadline(t time.Time) error

SetWriteDeadline は Conn SetWriteDeadline メソッドを実装します。

func (*UnixConn) SyscallConn 1.9

func (c *UnixConn) SyscallConn() (syscall.RawConn, error)

SyscallConn は,生のネットワーク接続を返します。 これは syscall.Conn インターフェースを実装します。

func (*UnixConn) Write

func (c *UnixConn) Write(b []byte) (int, error)

Write は Conn Write メソッドを実装します。

func (*UnixConn) WriteMsgUnix

func (c *UnixConn) WriteMsgUnix(b, oob []byte, addr *UnixAddr) (n, oobn int, err error)

WriteMsgUnix は, c を介して addr にメッセージを書き込み, b のペイロードと oob の関連する帯域外データをコピーします。 書き込まれたペイロード数と帯域外バイト数を返します。

len(b) == 0 かつ len(oob) > 0 の場合でも,この関数は接続に 1 バイトを書き込みます。

func (*UnixConn) WriteTo

func (c *UnixConn) WriteTo(b []byte, addr Addr) (int, error)

WriteTo は PacketConn の WriteTo メソッドを実装します。

func (*UnixConn) WriteToUnix

func (c *UnixConn) WriteToUnix(b []byte, addr *UnixAddr) (int, error)

WriteToUnix は WriteTo のように機能しますが, UnixAddr を取ります。

type UnixListener

UnixListener は Unix ドメインソケットリスナーです。 クライアントは通常, Unix ドメインソケットを想定せずに Listener 型の変数を使用するべきです。

type UnixListener struct {
    // エクスポートされていないフィールドがあります
}

func ListenUnix

func ListenUnix(network string, laddr *UnixAddr) (*UnixListener, error)

ListenUnix は, Unix ネットワークでは Listen のように機能します。

ネットワークは "unix" または "unixpacket" でなければなりません。

func (*UnixListener) Accept

func (l *UnixListener) Accept() (Conn, error)

Accept は, Listener インターフェースの Accept メソッドを実装します。 返される接続は *UnixConn 型になります。

func (*UnixListener) AcceptUnix

func (l *UnixListener) AcceptUnix() (*UnixConn, error)

AcceptUnix は次の着信呼び出しを受け入れ,新しい接続を返します。

func (*UnixListener) Addr

func (l *UnixListener) Addr() Addr

Addr はリスナーのネットワークアドレスを返します。 返される Addr は Addr のすべての呼び出しで共有されているので,変更しないでください。

func (*UnixListener) Close

func (l *UnixListener) Close() error

閉じると, Unix アドレスの監視が停止します。 既に受け入れられている接続は閉じられません。

func (*UnixListener) File

func (l *UnixListener) File() (f *os.File, err error)

File は内部の os.File のコピーを返します。 終了したら f を閉じるのは呼び出し側の責任です。 l を閉じても f には影響しません。 f を閉じても l には影響しません。

返された os.File のファイル記述子は接続のものとは異なります。 この複製を使用してオリジナルのプロパティを変更しようとすると,目的の効果が得られる場合とそうでない場合があります。

func (*UnixListener) SetDeadline

func (l *UnixListener) SetDeadline(t time.Time) error

SetDeadline は,リスナーに関連付けられている期限を設定します。 ゼロの時間値は期限を無効にします。

func (*UnixListener) SetUnlinkOnClose 1.8

func (l *UnixListener) SetUnlinkOnClose(unlink bool)

SetUnlinkOnClose は,リスナーが閉じられたときに内部のソケットファイルをファイルシステムから削除するかどうかを設定します。

デフォルトの振る舞いは,パッケージ net がそれを作成したときだけソケットファイルをリンク解除することです。 つまり,リスナーと内部のソケットファイルが Listen または ListenUnix の呼び出しによって作成された場合,デフォルトではリスナーを閉じるとソケットファイルは削除されます。 しかし,既存のソケットファイルを使用するために FileListener を呼び出してリスナーを作成した場合,デフォルトではリスナーを閉じてもソケットファイルは削除されません。

func (*UnixListener) SyscallConn 1.10

func (l *UnixListener) SyscallConn() (syscall.RawConn, error)

SyscallConn は,生のネットワーク接続を返します。 これは syscall.Conn インターフェースを実装します。

返された RawConn は, Control の呼び出しのみをサポートしています。 Read と Write はエラーを返します。

type UnknownNetworkError

type UnknownNetworkError string

func (UnknownNetworkError) Error

func (e UnknownNetworkError) Error() string

func (UnknownNetworkError) Temporary

func (e UnknownNetworkError) Temporary() bool

func (UnknownNetworkError) Timeout

func (e UnknownNetworkError) Timeout() bool

Bugs

サブディレクトリ

名前 概要
..
http http パッケージは,HTTP クライアントとサーバを実装します。
cgi cgi パッケージは RFC 3875 で定義された CGI (Common Gateway Interface) を実装します。
cookiejar cookiejar パッケージは,インメモリの RFC 6265 に適合した http.CookieJar を実装します。
fcgi fcgi パッケージは, FastCGI プロトコルを実装します。
httptest httptest パッケージは,HTTP テストに便利な関数を提供します。
httptrace httptrace パッケージは, HTTP クライアントリクエストにおけるイベントを追跡する機構を提供します。
httputil httputil パッケージは, net/http パッケージにある関数を補完し,HTTP でよく使われる関数を提供します。
pprof pprof パッケージは,pprof 視覚化ツールのフォーマットで HTTP サーバ ランタイムプロファイルデータを提供します。
mail mail パッケージは,メールメッセージのパースを実装します。
rpc rpc パッケージは,ネットワークや他の I/O 接続を越えてオブジェクトのエクスポートメソッドへのアクセスを提供します。
jsonrpc jsonrpc パッケージは,rpc パッケージ用に JSON-RPC 1.0 ClientCodec と ServerCodec を実装します。
smtp smtp パッケージは, RFC 532 で定義される Simple Mail Transfer Protocol を実装します。
textproto textproto パッケージは,HTTP,NNTP,SMTP のテキストベースのリクエスト/レスポンスプロトコルを実装します。
url url パッケージは, URL を解析し,クエリエスケープを実装します。