基于Qt5.9Creator的一个简单socket通信实例(C++语言,win7 64系统)
2018-01-29 11:42
1111 查看
本文章主要总结用Qt5.9Creator编写一个简单服务器端和客户端实例。该实例使用socket通信,基于TCP/IP协议,具体的模块分为四大部分。第一部分是服务器端的编写,第二部分是客户端的编写,第三部分是测试部分,第四部分是源代码的下载地址。下面将详细讲述这三大模块。
采用的系统是:win7 64位,服务器和客户端都运行在本机电脑上。
一、服务器编写
服务器端的编写主要分为六大步骤,分别为创建对象(QTcpServer对象),侦听端口(listen()函数),连接newConnection客户端信号,发送数据(write()函数),接收缓冲区数据(readAll()函数),取消侦听(close()函数)。下面将按照这六大步骤来创建一个服务器端程序。
1.1新建一个widget工程,工程名称命名为tcpServerSocketCommunication,基类选择QMainWindow。并且在ui界面上拖入如下内容
1.2在.pro工程里面,添加如下内容,添加完后记得保存!
1.3在mainwindow.h头文件添加如下内容:
1.4在mainwindow.cpp的构造函数中,添加如下内容:
1.5在ui界面上,添加侦听按钮和发送按钮槽函数,同时在mainwindow.h头文件中,写入如下三个槽函数(连接槽函数,读数据槽函数,断开槽函数):
1.6在mainwindow.cpp源文件中,分别添加这五个槽函数的内容,如下面所示:
1.7在mainwindow.cpp的析构函数中,添加如下代码。同时在mainwindow.cpp源文件关联头文件:
1.8程序构建运行,结果如下图所示:
二、客户端编写
客户端的编写主要分为五个步骤,分别是创建套接字对象(QTcpSocket类),连接服务器(connectToHost()函数),向服务器发送数据(write()函数),读取缓冲区数据(readAll()函数),断开与服务器连接(disconnectFromHost()函数)。
2.1新建一个widget工程,工程名称命名为tcpClientSocketCommunication,基类选择QMainWindow。并且在ui界面上拖入如下内容
2.2在.pro工程里面,添加如下内容,添加完后记得保存!
2.3在mainwindow.h头文件添加如下内容:
2.4在mainwindow.cpp的构造函数中,添加如下内容:
2.5在ui界面上,添加侦听按钮和发送按钮槽函数,同时在mainwindow.h头文件中,写入如下三个槽函数(连接槽函数,读数据槽函数,断开槽函数):
2.6在mainwindow.cpp源文件中,分别添加这五个槽函数的内容,如下面所示:
2.7在mainwindow.cpp的析构函数中,添加如下代码。同时在mainwindow.cpp源文件关联头文件:
2.8程序构建运行,结果如下图所示:
三、测试和结果
3.1分别运行服务器端和客户端,界面如下图所示:
3.2点击服务器端的监听按钮,然后再点击客户端的连接按钮,弹出框提示:连接服务器成功!如下图所示:
3.3此时服务器和客户端连接成功,可以进行通信和消息的发送了。在客户端的发送区域,输入:I am client message!,点击发送按钮,如下图所示:
3.4在服务器端的发送消息编辑框,输入:I am server message!,然后点击发送按钮,结果如下图所示:
四、源代码下载地址:
http://download.csdn.net/download/naibozhuan3744/10229293
参考内容:
http://blog.csdn.net/u014695839/article/details/70041771(推荐参考这篇文章) https://www.cnblogs.com/findumars/p/5838531.html http://blog.csdn.net/u012997311/article/details/50996701
采用的系统是:win7 64位,服务器和客户端都运行在本机电脑上。
一、服务器编写
服务器端的编写主要分为六大步骤,分别为创建对象(QTcpServer对象),侦听端口(listen()函数),连接newConnection客户端信号,发送数据(write()函数),接收缓冲区数据(readAll()函数),取消侦听(close()函数)。下面将按照这六大步骤来创建一个服务器端程序。
1.1新建一个widget工程,工程名称命名为tcpServerSocketCommunication,基类选择QMainWindow。并且在ui界面上拖入如下内容
1.2在.pro工程里面,添加如下内容,添加完后记得保存!
1.3在mainwindow.h头文件添加如下内容:
1.4在mainwindow.cpp的构造函数中,添加如下内容:
1.5在ui界面上,添加侦听按钮和发送按钮槽函数,同时在mainwindow.h头文件中,写入如下三个槽函数(连接槽函数,读数据槽函数,断开槽函数):
1.6在mainwindow.cpp源文件中,分别添加这五个槽函数的内容,如下面所示:
1.7在mainwindow.cpp的析构函数中,添加如下代码。同时在mainwindow.cpp源文件关联头文件:
1.8程序构建运行,结果如下图所示:
二、客户端编写
客户端的编写主要分为五个步骤,分别是创建套接字对象(QTcpSocket类),连接服务器(connectToHost()函数),向服务器发送数据(write()函数),读取缓冲区数据(readAll()函数),断开与服务器连接(disconnectFromHost()函数)。
2.1新建一个widget工程,工程名称命名为tcpClientSocketCommunication,基类选择QMainWindow。并且在ui界面上拖入如下内容
2.2在.pro工程里面,添加如下内容,添加完后记得保存!
2.3在mainwindow.h头文件添加如下内容:
2.4在mainwindow.cpp的构造函数中,添加如下内容:
2.5在ui界面上,添加侦听按钮和发送按钮槽函数,同时在mainwindow.h头文件中,写入如下三个槽函数(连接槽函数,读数据槽函数,断开槽函数):
2.6在mainwindow.cpp源文件中,分别添加这五个槽函数的内容,如下面所示:
2.7在mainwindow.cpp的析构函数中,添加如下代码。同时在mainwindow.cpp源文件关联头文件:
2.8程序构建运行,结果如下图所示:
三、测试和结果
3.1分别运行服务器端和客户端,界面如下图所示:
3.2点击服务器端的监听按钮,然后再点击客户端的连接按钮,弹出框提示:连接服务器成功!如下图所示:
3.3此时服务器和客户端连接成功,可以进行通信和消息的发送了。在客户端的发送区域,输入:I am client message!,点击发送按钮,如下图所示:
3.4在服务器端的发送消息编辑框,输入:I am server message!,然后点击发送按钮,结果如下图所示:
四、源代码下载地址:
http://download.csdn.net/download/naibozhuan3744/10229293
参考内容:
http://blog.csdn.net/u014695839/article/details/70041771(推荐参考这篇文章) https://www.cnblogs.com/findumars/p/5838531.html http://blog.csdn.net/u012997311/article/details/50996701
相关文章推荐
- 基于Tcp协议的简单Socket通信实例(JAVA)
- 基于开源库tufao,一个C + +的异步 Web 框架,使用Qt的对象的通信系统(信号与槽)
- 基于Tcp协议的简单Socket通信实例(JAVA)
- TTMS 一个基于Java Swing的Socket通信的剧院票务管理系统
- 基于Tcp&UDP协议的简单Socket通信实例(JAVA)
- 基于Tcp协议的简单Socket通信实例(JAVA)
- AVA实现基于Tcp协议的简单Socket通信实例
- QT单实例应用,使用QLocalSocket进行进程通信,不同运行权限下运行的同一个进程通讯失败,报错 “QLocalSocket::SocketAccessError”
- JAVA实现基于Tcp协议的简单Socket通信实例
- [20180313智慧餐厅推荐系统02]基于python的socket编程代码,实现PC与服务器的简单通信
- 关于java通信的一个简单聊天系统的实现
- 基于Qt5.6做一个最简单的具有收发功能的串口助手
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- socket编程实现一个简单的多人通信(udp)
- 一个简单的基于AJAX的二级联动实例
- 一个简单的自定义通信协议(socket)
- 基于atmel mega88编写了一个简单的时间触发系统单片机框架程序
- 程序员简单打造一个灵活智能的自动化运维系统C#实例程序
- c#编写的基于Socket的异步通信系统--SanNiuSignal.DLL已开源
- 在系统中增加一个可唤醒中断--简单实例