UDP 与 TCP 的差异
TCP | UDP |
---|---|
面向连接 | 面向无连接 |
要求系统资源较多 | 要求系统资源较少 |
TCP 程序结构较复杂 | UDP 程序结构较简单 |
使用流式 | 使用数据报式 |
保证数据准确性 | 不保证数据准确性 |
保证数据顺序 | 不保证数据顺序 |
通讯速度较慢 | 通讯速度较快 |
UDP 服务器
由于 UDP 是“无连接”的,所以,服务器端不需要额外创建监听套接字,只需要指定好 IP 和 port,然后监听
该地址,等待客户端与之建立连接,即可通信。
//创建监听地址:
func ResolveUDPAddr(network, address string) (*UDPAddr, error)
//创建用于通信的 socket:
func ListenUDP(network string, laddr *UDPAddr) (*UDPConn, error)
//接收 udp 数据:
func (c *UDPConn) ReadFromUDP(b []byte) (int, *UDPAddr, error)
//写出数据到 udp:
func (c