golang net包基础解析

这里主要介绍网络包内主要的几个类型。
net包是提供了底层的网络接口的,但是平时我们需要就是两个主要的接口,Listener和Conn。

1. Conn

Conn是一个基本的接口类型,以数据流为向导的网络连接接口。注意他是接口类型,不需要我们来手动构造实现Conn接口。
生成满足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)
func Pipe() (Conn, Conn)

通常在网络内,我们使用Dial()这个函数,来建立连接。
他的两个参数,第一个是网络连接类型。
有这么些种类:"tcp", "tcp4" (IPv4-only), "tcp6" (IPv6-only), "udp", "udp4" (IPv4-only), "udp6" (IPv6-only), "ip", "ip4" (IPv4-only), "ip6" (IPv6-only), "unix", "unixgram" and "unixpacket".
在Go中,主要处理了IP网络、TCP网络、UDP网络和UNIX网络。Go中Conn主要是处理在网络层之上的。所以在使用IP网络的时候,后面必须添加IP层上使用的协议名称或协议号。比如

Dial("ip4:1", "127.0.0.1")
Dial("ip6:ospf", "::1")

但是这样做之后,必须自己实现里面的IP数据包的内容,比如你协议使用TCP,那么TCP的字段都需要你手动来构造。通常我们直接使用TCP或UDP网络就可以了。

第二个参数是网络地址,在IP网络内,只用给出网络ip地址就可以了,在tcp或udp网络内,需要给出网络端口,但是如果你给出上层网络协议也是可以的,如

Dial("tcp", "12.34.56.78:80")
Dial("tcp", "google.com:http")
Dial("tcp", "[2001:db8::1]:http")   //注意ipv6,必须使用[]进行包裹
Dial("tcp", <
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值