简介

net 包提供了可移植的网络 I/O 接口,包括 TCP/IP、UDP、域名解析和Unix 域 socket

使用

监听常用模版

关键函数 Dial Listen Accept

端口监听

// 监听端口
listen, err := net.Listen("tcp", "127.0.0.1:8080")
if err != nil {
	// 处理错误
}
// 不断循环接收
for {
	// 在没有接收到数据前这里是阻塞的
	conn, err := listen.Accept()
	if err != nil {
		// 处理异常
		continue
	}
	// 开启协程
	go handleConnect(conn)
}

handleConnect 处理

data := make([]byte, 4096)
n, err := conn.Read(data)
if err != nil {
	// 处理异常
}
// 这样 data 就可以拿到数据了,并且 n 还可以知道 byte 数组有多少个元素

建立链接

conn, err := net.Dial("tcp", "google.com:80")
if err != nil {
	// 处理异常
}