Write A Tcp Server

1、tcp server基础模型
  1. package main
  2. func main(){
  3. addr:= "0.0.0.0:8888" //host:port 绑定一个ip和端口,多个网卡可以使用0.0.0.0
  4. protocol:="tcp" //网络协议
  5. /*
  6. server网络传输的5个步骤
  7. 1、监听服务
  8. 2、接收客户端请求
  9. 3、与客户端交换数据
  10. 4、关闭客户端
  11. 5、关闭服务器
  12. */
  13. listener,err:=net.Listen(protocol,addr) //监听一个端口
  14. conn,err:=listener.Accept() //接收客户端请求
  15. if err !=nil{
  16. panic(err)
  17. } else{
  18. //交换数据
  19. conn.Read()
  20. conn.Write()
  21. conn.Close() //关闭客户端连接
  22. }
  23. listener.Close()
  24. }
2、tcp client基础模型
  1. package main
  2. import (
  3. "net"
  4. )
  5. func main(){
  6. addr:="127.0.0.1:8888"
  7. protocol:="tcp"
  8. /*
  9. client 传输的三个步骤
  10. 1、创建连接
  11. 2、交换数据
  12. 3、关闭连接
  13. */
  14. conn,err:=net.Dial(protocol,addr) //创建连接
  15. if err!=nil{
  16. fmt.Println(err)
  17. }
  18. conn.Read() //交换数据
  19. conn.Write() //交换数据
  20. conn.Close() //关闭连接
  21. }

注意:服务端和客户端需要协调好读写顺序,都读或者都写都会造成通信的死锁。所以一般为客户端先写,服务端先读,然后服务端写,客户端读

文档更新时间: 2021-08-25 15:43   作者:张尚