QT之简易的聊天工具的实现(Socket通信)

本文通过QT框架,实现了一个简单的聊天工具,利用Socket进行客户端和服务器的交互,支持字母、数字和汉字的发送。程序包含登录界面和聊天界面,服务器端负责监听并处理连接请求,而客户端则能进行数据的读写。由于未涉及数据库,用户名和密码为固定值。代码结构清晰,适合初学者理解学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想着练习一下QT,做一个简单的小程序。

突然就想到做一个聊天工具,这个实现起来很简单,没有复杂的关系。

主要实现客户端和服务器简单交互,可以发送字母、数字、汉字。

界面设计比较简单,后续再有功能再作更新。

写了一个简单的登录界面,用户名和密码是死的,因为没有添加数据库。

主要实现是server创建socket对象后,一直处于监听状态,等待客户端的连接请求,

连接成功后,实现简易的数据读写,(先启动server哦!)

登录界面如下:mainwindows

聊天界面如下:mainwin_1

整体界面简单,稍微看一下代码就能明白!

server端的代码:

mainwin_1.h  +  mainwindows.h:

//mainwindows.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <mainwin_1.h>


namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    MainWin_1 *mainwin;   //UI of chat



    ~MainWindow();

private slots:
    void on_pushButton_clicked();//login

    void on_pushButton_2_clicked();//cancel

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


//  mainwin_1.h--------------------------------------------------------
#ifndef MAINWIN_1_H
#define MAINWIN_1_H

#include <QMainWindow>
#include <QTcpServer>
#include <QTcpSocket>

namespace Ui {
class MainWin_1;
}

class MainWin_1 : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWin_1(QWidget *parent = 0);
    ~MainWin_1();

private slots:
    void on_pushButton_clicked();  //listen in client, send the news

    void server_NEW_Connect();     //accept the client signal and connect
    void socket_Read_Data();       //read the client news
    void socket_Disconnect();      //disconnect

private:
    void my_connect();

private:
    Ui::MainWin_1 *ui;

    QTcpServer *server; //create server object
    QTcpSocket *socket; //create clirnt object
};

#endif // MAINWIN_1_H




main.cpp  +  mainwin_1.cpp  +  mainwindows.cpp:

//main.cpp
#include "mainwindow.h"
#include <QApplication>
#include "QTextCodec"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWin
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值