qt 소켓 통신

// server 
    #include "testnet.h"   
    #include "ui_testnet.h"   
    #include <QtGui>   
    Testnet::Testnet(QWidget *parent) :   
        QMainWindow(parent),   
        ui(new Ui::Testnet)   
    {   
        ui->setupUi(this);   
        this->connect(ui->pushButton_start,SIGNAL(clicked()),this,SLOT(startTcpserver()));   
        this->connect(ui->pushButton_send,SIGNAL(clicked()),this,SLOT(sendMessage()));   
    } 
    Testnet::~Testnet()   
    {   
        delete ui;   
    } 
    void Testnet::startTcpserver()   
    {   
        m_tcpServer = new QTcpServer(this);   
       
        m_tcpServer->listen(QHostAddress::Any,19999); //      19999   ip   
       
        connect(m_tcpServer,SIGNAL(newConnection()),this,SLOT(newConnect())); //       ,  newConnect()   ,         ,        。   
    } 
    void Testnet::newConnect()   
    {   
            m_tcpSocket = m_tcpServer->nextPendingConnection(); //        socket   
            connect(m_tcpSocket,SIGNAL(readyRead()),this,SLOT(readMessage())); //      ,       
    }  
    void Testnet::readMessage() //       
    {  
        QByteArray qba= m_tcpSocket->readAll(); //     
        qDebug()<<qba;   
        QString ss=QVariant(qba).toString();   
        ui->textEdit_rec->setText(ss);   
       
    } 
    void Testnet::sendMessage() //       
    {   
        QString strMesg= ui->lineEdit_sendmessage->text();   
        qDebug()<<strMesg;   
        m_tcpSocket->write(strMesg.toStdString().c_str(),strlen(strMesg.toStdString().c_str())); //     
    }   
 
// client 
    #include "testnet_c.h"   
    #include "ui_testnet_c.h"   
    testnet_c::testnet_c(QWidget *parent) :   
        QMainWindow(parent),   
        ui(new Ui::testnet_c)   
    {   
        ui->setupUi(this);   
       
        this->connect(ui->pushButton_con,SIGNAL(clicked()),this,SLOT(connectServer()));   
        this->connect(ui->pushButton_send,SIGNAL(clicked()),this,SLOT(sendMesg()));   
    }   
       
    testnet_c::~testnet_c()   
    {   
        delete ui;   
    }   
 
    void testnet_c::connectServer()   
    {   
        m_tcpSocket = new QTcpSocket(this);   
        m_tcpSocket->abort();   
        m_tcpSocket->connectToHost("192.168.1.178",19999);   
       
        connect(m_tcpSocket,SIGNAL(readyRead()),this,SLOT(readMesg()));   
    } 
    void testnet_c::readMesg() //       
    {   
       QByteArray qba =   m_tcpSocket->readAll();   
       
       ui->textEdit_recmesg->clear();   
       
       qDebug()<<qba;   
       QString ss=QVariant(qba).toString();   
       ui->textEdit_recmesg->setText(ss);   
    } 
    void testnet_c::sendMesg() //       
    {   
        QString ss= ui->lineEdit_sendmesg->text();   
        m_tcpSocket->write(ss.toStdString().c_str(),strlen(ss.toStdString().c_str()));   
        ui->lineEdit_sendmesg->clear();   
    }  

좋은 웹페이지 즐겨찾기