Go语言DialTCP():网络通信
实际上,在前面《Dial()函数》一节中介绍的 Dial() 函数其实是对 DialTCP()、DialUDP()、DialIP() 和 DialUnix() 的封装。我们也可以直接调用这些函数,它们的功能是一致的。这些函数的原型如下:
func DialTCP(net string,laddr,raddr *TCPAddr) (c *TCPConn,err error) package main import ( "net" "os" "fmt" "io/ioutil" ) func main() { if len(os.Args) != 2 { fmt.Fprintf(os.Stderr,"Usage: %s host:port",os.Args[0]) os.Exit(1) } service := os.Args[1] tcpAddr,err := net.ResolveTCPAddr("tcp4",service) checkError(err) conn,err := net.DialTCP("tcp",nil,tcpAddr) checkError(err) _,err = conn.Write([]byte("HEAD / HTTP/1.0rnrn")) checkError(err) result,err := ioutil.ReadAll(conn) checkError(err) fmt.Println(string(result)) os.Exit(0) } func checkError(err error) { if err != nil { fmt.Fprintf(os.Stderr,"Fatal error: %s",err.Error()) os.Exit(1) } }与之前使用 Dail() 的例子相比,有两个不同点:
提示:这两个函数在 Dial() 函数中都得到了封装。 运行结果如下:
go run main.go baidu.com:80 验证 IP 地址有效性的函数如下: func net.ParseIP() 创建子网掩码的函数如下:func IPv4Mask(a,b,c,d byte) IPMask 获取默认子网掩码的函数如下:func (ip IP) DefaultMask() IPMask 根据域名查找 IP 的函数如下:
func ResolveIPAddr(net,addr string) (*IPAddr,error) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |