Write A Tcp Server
1、tcp server基础模型
package main
func main(){
addr:= "0.0.0.0:8888" //host:port 绑定一个ip和端口,多个网卡可以使用0.0.0.0
protocol:="tcp" //网络协议
/*
server网络传输的5个步骤
1、监听服务
2、接收客户端请求
3、与客户端交换数据
4、关闭客户端
5、关闭服务器
*/
listener,err:=net.Listen(protocol,addr) //监听一个端口
conn,err:=listener.Accept() //接收客户端请求
if err !=nil{
panic(err)
} else{
//交换数据
conn.Read()
conn.Write()
conn.Close() //关闭客户端连接
}
listener.Close()
}
2、tcp client基础模型
package main
import (
"net"
)
func main(){
addr:="127.0.0.1:8888"
protocol:="tcp"
/*
client 传输的三个步骤
1、创建连接
2、交换数据
3、关闭连接
*/
conn,err:=net.Dial(protocol,addr) //创建连接
if err!=nil{
fmt.Println(err)
}
conn.Read() //交换数据
conn.Write() //交换数据
conn.Close() //关闭连接
}
注意:服务端和客户端需要协调好读写顺序,都读或者都写都会造成通信的死锁。所以一般为客户端先写,服务端先读,然后服务端写,客户端读
文档更新时间: 2021-08-25 15:43 作者:张尚