- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《客户端与服务器端
Qt编写TCP通讯程序 客户端与服务器端
说明:这是本人的练手之作,学习这个程序花费了大量时间,学习过程中借鉴了网友的成果。现在百忙之中将我的学习成果制作成学习教程供大家学习。同时我也希望大家都将自己的学习成果发布到网上,让大家共享。
由于我是初学者,该程序肯定会有BUG和许多需要改进的地方。有需要讨论的请加我的QQ:489478088,加我时请注明:QT学习讨论。或者加入我的QQ
下载源代码后,由于不同版本的QT Creator创建的环境不同,可能无法正确运行,所以打开后,QT Creator可能会提示QT Creator发现其他环境的配置文件,问是否要载入,选择No。提示如下:
这时要选择NO。如果还无法运行,那你就只好新建一个工程,把我的源文件代码全部复制到你的新建工程里,再运行。
下面,开始讲解如何编写TCP测试软件:
第一步,创建工程,选中QtNetwork支持,基类选择Widget。如果创建工程中没有QtNetwork选项,在工程建好后,在工程文件*.pro文件里QT += core gui语句后面加入
QT += network
否则编译将出现“QNetworkInterface: No such file o”等错误
第二步,新建-文件或工程-选择QT项目-选择qt设计师界面类-选择Dialog without buttons,类名为client,完成。
编辑clientui界面,右击空白部分,将对象名称改为“client”,在界面添加标签按钮等,添加完成如下:
第三步,服务器地址行编辑器(Line Edit)的对象名改为clientIPlineEdit;
数据发送区行编辑器(Line Edit)的对象名改为clientMessagelineEdit;
端口行编辑器(Line Edit)的对象名改为clientPortlineEdit;
数据显示区行编辑器(textBrowser)的对象名改为messagetextBrowser;
发送按钮的对象名改为clientSendpushButton;
清空按钮的对象名改为cCleanpushButton;
连接按钮的对象名改为connectpushButton;
断开按钮的对象名改为disconnectpushButton;
Ready标签的对象名改为cStatuslabel。
第四步,编辑client.h文件
添加:
#include QNetworkInterface
#include QtNetwork
2. 在函数class client : public QDialog添加
private:
QListQHostAddress IPlist;
QTcpServer *tcpServer;
QTcpSocket *tcpClient;
QString clientPort;
QString serverIP;
QString clientMessage; //客户端发出的信息
QString message;
quint16 blockSize; //存放文件的大小信息
QTcpSocket *clientConnection;
private slots:
void clientSendMessage();
void updateStatus();
void readMessage(); //接收数据
void displayError(QAbstractSocket::SocketError); //显示客户端错误
void createServerSocket();
void updateClientStatusConnect();
void updateClientStatusDisconnect();
void on_disconnectpushButton_clicked();
void on_connectpushButton_clicked();
void on_cCleanpushButton_clicked();
第五步,编辑client.cpp文件
添加#include QMessageBox
在构造函数Widget::Widget(QWidget *parent)添加:
connect (ui-clientSendpushButton, SIGNAL(clicked()), this, SLOT(clientSendMessage()));
ui-clientSendpushButton-setEnabled (false);
文档评论(0)