其他分享
首页 > 其他分享> > 关于UPD章节学习的一些感想

关于UPD章节学习的一些感想

作者:互联网

课程看到了UDP,

首先了解UDP的原理模型.

     服务端,首先是实例QUdpSocket,也就是UDP套接字,然后,需要绑定.绑定一个任意IP地址,分为IPV4和IPV6.自行选择课程中讲解时绑定的是IPV4地址.此处有一个知识点如果此时向网络发送消息,是全网广播,那么就会造成网络的堵塞,

  可以建立一个组播joinMulticastGroup(),组播时的地址是D类地址,也就是224.0.0.1-239.255.255.255.参考了一下百度出来的结果:https://blog.csdn.net/qq_37717494/article/details/105529004..然后就是定义一个公共的槽函数,处理收到的信息.在对方发给我们数据时,套接字会自动的触发readyRead().最后,用readDatagram/writeDatagram进行收发操作.

在客户端,不需要绑定,实例化QUdpSocket之后,用readDatagram/writeDatagram进行收发操作.

大致上代码客户端和服务端一样,我自己进行了一点扩展,关于套接字的close(),在最开始进行判断,套接字是否置空,没有置空,就先置空,然后再退出组播,然后关闭套接字,最后将套接字置空,如果已经是空,那就返回.

 

 相应的,在发送信息的时候,要重新实例化套接字.也要进行相应的判断

 

  这样就不会因为连续关闭出现崩溃,和关闭后,无法发送信息.这些都是我自己做的扩展.还有对于发送前,对IP地址和端口的数据检查.我只做了不为空的检查,实现开发时,还要对其格式进行检查,也可以对于编辑框进行输入限定,根据固定的格式输入.

  有一个困惑,如果是客户端给服务端发消息,因为服务端进行了绑定和开启了组播,那么服务收到后,可以获取到发送消息的客户端的IP地址和端口号,那么客户端没有发送消息之前,如何获取这个客户端的IP地址和端口呢?是不是说只能客户端先发消息?这些只能待后其学习深 入再查一查资料了.

标签:章节,UPD,绑定,感想,置空,IP地址,接字,服务端,客户端
来源: https://www.cnblogs.com/mycoders/p/15733196.html