基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)

本文章主要总结用Qt5.9Creator编写一个简单服务器端和客户端实例。该实例使用socket通信,基于TCP/IP协议,具体的模块分为四大部分。第一部分是服务器端的编写,第二部分是客户端的编写,第三部分是测试部分,第四部分是源代码的下载地址。下面将详细讲述这三大模块。


采用的系统是:win7 64位,服务器和客户端都运行在本机电脑上。


一、服务器编写

服务器端的编写主要分为六大步骤,分别为创建对象(QTcpServer对象),侦听端口(listen()函数),连接newConnection客户端信号,发送数据(write()函数),接收缓冲区数据(readAll()函数),取消侦听(close()函数)。下面将按照这六大步骤来创建一个服务器端程序。


1.1新建一个widget工程,工程名称命名为tcpServerSocketCommunication,基类选择QMainWindow。并且在ui界面上拖入如下内容

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


1.2在.pro工程里面,添加如下内容,添加完后记得保存!

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


1.3在mainwindow.h头文件添加如下内容:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


1.4在mainwindow.cpp的构造函数中,添加如下内容:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


1.5在ui界面上,添加侦听按钮和发送按钮槽函数,同时在mainwindow.h头文件中,写入如下三个槽函数(连接槽函数,读数据槽函数,断开槽函数):

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


1.6在mainwindow.cpp源文件中,分别添加这五个槽函数的内容,如下面所示:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


1.7在mainwindow.cpp的析构函数中,添加如下代码。同时在mainwindow.cpp源文件关联头文件:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


1.8程序构建运行,结果如下图所示:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


二、客户端编写

客户端的编写主要分为五个步骤,分别是创建套接字对象(QTcpSocket类),连接服务器(connectToHost()函数),向服务器发送数据(write()函数),读取缓冲区数据(readAll()函数),断开与服务器连接(disconnectFromHost()函数)。

2.1新建一个widget工程,工程名称命名为tcpClientSocketCommunication,基类选择QMainWindow。并且在ui界面上拖入如下内容

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


2.2在.pro工程里面,添加如下内容,添加完后记得保存!
基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)

2.3在mainwindow.h头文件添加如下内容:
基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


2.4在mainwindow.cpp的构造函数中,添加如下内容:
基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)

2.5在ui界面上,添加侦听按钮和发送按钮槽函数,同时在mainwindow.h头文件中,写入如下三个槽函数(连接槽函数,读数据槽函数,断开槽函数):
基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)

2.6在mainwindow.cpp源文件中,分别添加这五个槽函数的内容,如下面所示:
基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


2.7在mainwindow.cpp的析构函数中,添加如下代码。同时在mainwindow.cpp源文件关联头文件:
基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)

2.8程序构建运行,结果如下图所示:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


三、测试和结果

3.1分别运行服务器端和客户端,界面如下图所示:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


3.2点击服务器端的监听按钮,然后再点击客户端的连接按钮,弹出框提示:连接服务器成功!如下图所示:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


3.3此时服务器和客户端连接成功,可以进行通信和消息的发送了。在客户端的发送区域,输入:I am client message!,点击发送按钮,如下图所示:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


3.4在服务器端的发送消息编辑框,输入:I am server message!,然后点击发送按钮,结果如下图所示:

基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)


四、源代码下载地址:

http://download.****.net/download/naibozhuan3744/10229293



参考内容:

http://blog.****.net/u014695839/article/details/70041771(推荐参考这篇文章)

https://www.cnblogs.com/findumars/p/5838531.html

http://blog.****.net/u012997311/article/details/50996701