Socket 编程
# Socket 编程
net.Listen 创建服务端监听器,Accept 接收连接。每个连接都要设置截止时间并明确关闭责任。
listener, err := net.Listen("tcp", ":9000")
if err != nil {
return err
}
defer listener.Close()
for {
conn, err := listener.Accept()
if err != nil {
return err
}
go serveConnection(conn)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
一次 Read 不等于一条完整消息,应用协议必须定义换行、固定长度或长度头。生产服务还应限制连接数、空闲时间和单消息大小,并在关闭时停止接收新连接、等待现有任务退出。