【QT C++ TCP通信调试助手】

基于Qt5的 c++ Tcp/Ip通信

写在前面的话:
本文是在Qt 5.12.2平台上用c++写的tcp客户端与服务端的局域网通信,使用Qt自带的组件设计的界面,通过信号与槽机制实现ui界面中如QPushButton等组件的功能。另附C#链接:C#版tcp/ip通信

一、Qt中的项目的配置过程:

1.工程创建:打开Qt->新建项目->Application->Qt Widgets Application
2.在工程的.pro 中添加Qt的网络模块如下代码:
QT  += network
3.ui界面中的控件布局如下:

【QT C++ TCP通信调试助手】_第1张图片

4.最终的运行效果:

【QT C++ TCP通信调试助手】_第2张图片

5.项目文件的结构:

【QT C++ TCP通信调试助手】_第3张图片
注:其中Headers中的是.h文件;Sources中的是.cpp文件;Forms中的是ui界面;Resources中的是项目的 资源文件

二、TCP server:

1.tcp服务端负责监听ip,与指定的客户端建立连接并通信.
2.在.h中声明的函数有:
public:
	void Get_ip();
    bool send_msg(QString msg);
    bool send_msgs(QString msg);
private slots:
    //tcp server
    void on_connect_pushButton_clicked();
    void server_new_connection();
    void ReadError(QAbstractSocket::SocketError);
    void socket_Read_Data();
    void socket_disconnect();
    void timeUpdate();

   void on_clear_pushButton_clicked();
   void on_send_pushButton_clicked();

三、TCP client:

1.负责连接服务端,并与其通信。
2. 在 .h中声明的函数有:
private slots:
   void ReadData();
   void C_ReadError(QAbstractSocket::SocketError);

   void on_connect_server_pushButton_clicked();
   void on_clear_pushButton_2_clicked();
   void on_send_pushButton_2_clicked();

好了今天就写到到这了,最后附上源码的链接如下:

具体的实现过程源码及编译好的应用程序:项目源码

写在最后的话:

这个也是写了好几个版本,最开始时将Server端和Client端分开写的,有两个项目;后来又想着能不能将server和client放在一个项目中。又改了一个版本,在一个项目中封装两个类,server类和client类,通过button来切换服务端和客户端的界面。写完后又想了一下还是感觉不满意,于是又改了一个版本,server和client在一个类里边用Qt自带的组件QTabWidget实现server和client的界面切换,感觉这个版本符合app的使用习惯,最后就使用这个版本了。

嗯 …… 今天就这些了吧,最后再说一句:

有趣的灵魂千里挑一!!!!

你可能感兴趣的:(笔记,qt,c++,tcp/ip)