和TCP一样,同样的基础通信模型
基础学习的话还是按照上面的模式写代码把。
与TCP不同的是虽然上面的模型图有服务器和客户机的分别,但其实收发双方有着同等的地位。原因在于此模型中并没有用到connect()函数,建立的是无连接的网络通信。说白了你这里的readfrom和sendto函数就指明了你要发送的目标机地址。当然UDP中也可以使用connect()函数建立连接,只是此模型未用到。
这里只说明几点容易出错的地方。
1.无连接的通行并不意味这不用绑定套接字。bind()函数是必须的尤其是客户端,我的理解是bind()是在通信之前本主机自己的初始化行为,是网络内其他主机访问本主机的网络标识所以作为服务器一定要进行地址绑定。而客户端因为并不需要被其他主机访问所以无需绑定。
需要源码的在这:https://download.csdn.net/download/qq_41281601/10649845(留言私发,这怎么设免费下载啊?)