net库常用类型和函数
1.常用函数
Listen
Listen(network, laddr string) (Listener, error)
创建一个用于接受连接的监听器。
Dial
Dial(network, addr string) (Conn, error)
创建一个连接到指定地址的连接。
ListenTCP
ListenTCP(network, laddr *TCPAddr) (TCPListener, error)
创建一个 TCP 监听器。
DialTCP
DialTCP(network, laddr, raddr *TCPAddr) (TCPConn, error)
创建一个到指定 TCP 地址的连接。
LookupHost
LookupHost(host string) ([]string, error)
解析主机名到 IP 地址列表。
ResolveTCPAddr
ResolveTCPAddr(network, addr string) (*TCPAddr, error)
解析 TCP 地址字符串。
IP
IP
表示一个 IP 地址。
TCPAddr
TCPAddr
表示一个 TCP 地址。
UDPAddr
UDPAddr
表示一个 UDP 地址。
2.常用接口类型
Listener
Listener
接口类型,定义了 Accept 和 Close 方法。
Conn
Conn
接口类型,定义了 Read 和 Write 方法。
TCPConn
TCPConn
实现了 Conn 接口,并提供了 SetReadDeadline, SetWriteDeadline 等方法。
UDPConn
UDPConn
实现了 Conn 接口,并提供了 ReadFrom, WriteTo 等方法。
TCP服务端
简单实例,主要使用了net.Listen() 建立监听和监听返回的Listener接口进行接受和处理通信
package main
import (
"fmt"
"net"
)
func Handle(conn net.Conn) {
fmt.Println(conn.RemoteAddr())
}
func main() {
// 建立监听
address := "127.0.0.1:8888"
Listener, err := net.Listen("tcp",address)
if err!=nil {
fmt.Println("listening err:",err)
return
}
defer Listener.Close()
//接受并处理
for {
conn, err :=Listener.Accept()
if err!=nil {
fmt.Println("accept err :",err)
continue
}
go Handle(conn)
}
}