上个帖子总结了TCP协议下简单的的C/S模型,现在来看一下UDP协议下的C/S模型,TCP和UDP的异同点下图清晰可见。
因此TCP和UDP各有优缺点,选择什么协议进行开发得根据实际情况分析。
值得一提的是,UDP的客户端实现和TCP的客户端实现可以说是一模一样的,具体可进入我的上一个帖子参考: [golang]实现Tcp协议之简单C/S模型
但是UDP服务器和TCP略有不同!
由于UDP是“无连接”的,所以,服务器端不需要额外创建监听套接字,只需要指定好IP和port,然后监听该地址,等待客户端与之建立连接,即可通信,且UDP服务器不需要并发,也可以说本身就支持并发。
进入代码前,我们先看一下UDP服务器实现所需四个关键函数,按照服务器实现顺序给出,如下:
1)创建监听地址:
func ResolveUDPAddr(network, address string) (*UDPAddr, error)
2)创建用户通信的socket:
func ListenU