先要说明的是,我的代码也是参考别人的,加了自己的改进。在此将自己在做的过程中遇到的问题和解决方案记录一下。
先说一下所用到的控件的函数说明:
TextEDit控件:文本编辑框
- toplainText()获取文本框的内容,返回类型为Qstring。
- setText(QString&)重置文本框的内容。
- clean()清空文本框的内容。
Label控件
- setText()重置文本框的内容。
- Text()获取文本框的内容。
做的过程首先遇到编译不通过的问题,解决方法是在工程文件(.pro)上加上
QT += network
然后遇到了类型转换的问题,即数据报QByteArray和QString的转换,UDPSocket发送的是QByteArray类型的数据,然而要接收并且显示在文本框,则需要转换成QString,方法如下:
QByteArray→QString
QByteArray datagram;
QString data(datagram);
QString→QByteArray
QString data="hello"; QByteArray datagram = data.toAscii();
还有常遇到的编译错误就是没加头文件,用了socket的话要加#include<QtNetwork>。
现在我只是实现了客户端和服务器的超简单通信,就是客户端发送消息,服务器端收到后显示并且返回发送的内容,客户端接收返回的内容并且在编辑框显示,之后我会逐步实现一对一通过服务器的通信以及通过服务器的群聊功能。
未完,待续!