Qt下实现线程中的TCP服务器

本文介绍了在Qt环境中如何创建一个线程中的TCP服务器。通过使用QTcpServer对象,并将其移动到单独线程以实现多线程处理。代码示例展示了一个简单的TCP服务器,监听6000端口,接收到数据后返回前20个字节。
摘要由CSDN通过智能技术生成

简述

TCP服务器的代码实现比UDP略为复杂一点,因为TCP的服务端需要生成与管理一个额外的QTcpServer对象。为了支持多线程,用moveToThread方法把服务器放在一个单独的线程中。

代码之路

用MyTcpServer类实现TCPserver,供主程序调用方法。
MyTcpServer类头文件内容如下:

//MyTcpServer.h
# include <QObject>
#include <QTcpServer>
#include <QTcpSocket>
#include <QThread>
#include <QDebug>

class MyTcpServer : public QObject
{
	Q_OBJECT
public:
	explicit MyTcpServer(QObject *parent = 0);
	~MyTcpServer();
signals:
	void dataArrive(QByteArray ba); //send data to deal
public slots:
	void onNewConnection(); //new connection come
	void socketReaddata();    //read socket data
private:
	QTcpServer *m_tcpserver;
	QTcpSocket *m_socket;
	QByteArray tmpdata;
	QThread *m_thread;
	int tcpPort = 6000;
	QByteArray m_buffer;	
}

MyTcpServer类的源文件如下:

//MyTcpServer.cpp
MyTcpServer::MyTcpServer(QObject *parent) : QObject(parent)
{
	m_thread 
  • 0
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值