首页 > 编程笔记 > Go语言笔记 阅读:3

Go语言Dial()函数实现Socket编程(新手必看)

在使用其他编程语言实现 Socket 编程时,一般都按照如下步骤展开:
但是,在使用 Go 语言实现 Socket 编程时,没有上述编码步骤,这是因为 Go 语言标准库抽象和封装了上述步骤。在 Go 语言中,不论使用什么协议建立何种形式的连接,都只需要调用标准库中的 Dial() 函数。

Dial() 函数的语法格式如下:
func Dial(net, addr string) (Conn, error)
参数说明如下:
参数 net 有 9 个常用可选值。这些值分别代表在建立 Socket 连接时使用的通信协议,如下表所示。

表:参数 net 常用可选值及其说明
net 的值 说明
tcp TCP 协议,其基于的 IP 协议的版本根据参数 address 的值自适应
tcp4 基于 IP 协议第 4 版的 TCP 协议
tcp6 基于 IP 协议第 6 版的 TCP 协议
udp UDP 协议,其基于的 IP 协议的版本根据参数 address 的值自适应
udp4 基于 IP 协议第 4 版的 UDP 协议
udp6 基于 IP 协议第 6 版的 UDP 协议
unix Unix 通信域下的内部 socket 协议,以 SOCK_STREAM 为 socket 类型
unixgram Unix 通信域下的内部 socket 协议,以 SOCK_DGRAM 为 socket 类型
unixpacket Unix 通信域下的内部 socket 协议,以 SOCK_SEQPACKET 为 socket 类型

下面介绍下使用 Dial() 函数按照几种常见协议建立连接的方法。
1) 使用 Dial() 函数通过 IP 地址建立 TCP 连接,代码如下:
conn, err := net.Dial("tcp", "127.0.0.1:3000")

2) 使用 Dial() 函数通过 IP 地址建立 UDP 协议,代码如下:
conn, err := net.Dial("udp", "127.0.0.1:3000")
成功建立连接后,Dial() 函数返回一个连接对象(即 conn);反之,Dial() 函数返回一个错误(即 err)。

相关文章