Source File
tcpsock.go
Belonging Package
net
package net
import (
)
func ( *TCPAddr) () string { return "tcp" }
func ( *TCPAddr) () string {
if == nil {
return "<nil>"
}
:= ipEmptyString(.IP)
if .Zone != "" {
return JoinHostPort(+"%"+.Zone, itoa(.Port))
}
return JoinHostPort(, itoa(.Port))
}
func ( *TCPAddr) () bool {
if == nil || .IP == nil {
return true
}
return .IP.IsUnspecified()
}
func ( *TCPAddr) () Addr {
if == nil {
return nil
}
return
}
func (, string) (*TCPAddr, error) {
switch {
case "tcp", "tcp4", "tcp6":
case "": // a hint wildcard for Go 1.0 undocumented behavior
= "tcp"
default:
return nil, UnknownNetworkError()
}
, := DefaultResolver.internetAddrList(context.Background(), , )
if != nil {
return nil,
}
return .forResolve(, ).(*TCPAddr), nil
}
func ( string, , *TCPAddr) (*TCPConn, error) {
switch {
case "tcp", "tcp4", "tcp6":
default:
return nil, &OpError{Op: "dial", Net: , Source: .opAddr(), Addr: .opAddr(), Err: UnknownNetworkError()}
}
if == nil {
return nil, &OpError{Op: "dial", Net: , Source: .opAddr(), Addr: nil, Err: errMissingAddress}
}
:= &sysDialer{network: , address: .String()}
, := .dialTCP(context.Background(), , )
if != nil {
return nil, &OpError{Op: "dial", Net: , Source: .opAddr(), Addr: .opAddr(), Err: }
}
return , nil
}
type TCPListener struct {
fd *netFD
lc ListenConfig
}
func ( *TCPListener) () (syscall.RawConn, error) {
if !.ok() {
return nil, syscall.EINVAL
}
return newRawListener(.fd)
}
func ( *TCPListener) () Addr { return .fd.laddr }
func ( string, *TCPAddr) (*TCPListener, error) {
switch {
case "tcp", "tcp4", "tcp6":
default:
return nil, &OpError{Op: "listen", Net: , Source: nil, Addr: .opAddr(), Err: UnknownNetworkError()}
}
if == nil {
= &TCPAddr{}
}
:= &sysListener{network: , address: .String()}
, := .listenTCP(context.Background(), )
if != nil {
return nil, &OpError{Op: "listen", Net: , Source: nil, Addr: .opAddr(), Err: }
}
return , nil
}
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |