Go语言Dial()函数实现Socket编程(新手必看)
在使用其他编程语言实现 Socket 编程时,一般都按照如下步骤展开:
但是,在使用 Go 语言实现 Socket 编程时,没有上述编码步骤,这是因为 Go 语言标准库抽象和封装了上述步骤。在 Go 语言中,不论使用什么协议建立何种形式的连接,都只需要调用标准库中的 Dial() 函数。
Dial() 函数的语法格式如下:
参数 net 有 9 个常用可选值。这些值分别代表在建立 Socket 连接时使用的通信协议,如下表所示。
	
下面介绍下使用 Dial() 函数按照几种常见协议建立连接的方法。
1) 使用 Dial() 函数通过 IP 地址建立 TCP 连接,代码如下:
2) 使用 Dial() 函数通过 IP 地址建立 UDP 协议,代码如下:
	
	
- 按照网络协议、IP 地址或域名建立 Socket;
 - 使用端口绑定 Socket;
 - 监听端口;
 - 建立连接;
 - 发送、接收数据。
 
但是,在使用 Go 语言实现 Socket 编程时,没有上述编码步骤,这是因为 Go 语言标准库抽象和封装了上述步骤。在 Go 语言中,不论使用什么协议建立何种形式的连接,都只需要调用标准库中的 Dial() 函数。
Dial() 函数的语法格式如下:
func Dial(net, addr string) (Conn, error)参数说明如下:
- net:网络协议的名字;
 - addr:IP 地址或域名;在 IP 地址或域名后跟随端口号(端口号可选),用“:”分隔;
 - Conn:连接对象;
 - error:错误。
 
参数 net 有 9 个常用可选值。这些值分别代表在建立 Socket 连接时使用的通信协议,如下表所示。
| 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)。
 ICP备案:
 公安联网备案: