Go语言标准库里的net包,支持基于IP层、TCP/UDP、HTTP、FTP、SMTP的网络操作。其中用于IP层称为Raw Socket。
Dial函数
func Dial(net, addr string) (Conn, error)
支持:“tcp”(tcp4,tcp6),“udp”(udp4,udp6),“ip”(ip4,ip6)
发送数据时,使用conn的Write()成员方法。接收数据时使用Read()方法。
实际上,Dial()函数是对DialTCP(),DialUDP(),DialIP()和DialUnix()的封装。我们也可以直接调用这些函数。
1. 创建TCP连接
conn, err := net.Dial("tcp", "192.168.0.10:2100")
defer conn.Close()
if err != nil {
fmt.Println("tcp err:", err)
return
}
2. 创建UDP连接
conn, err := net.Dial("udp", "192.168.0.12:975")
defer conn.Close()
if err != nil {
fmt.Println("udp err:", err)
return
}
3. 创建IP连接,使用ICMP协议
conn, err := net.Dial("ip4:icmp", "www.baidu.com")