#include "mainwidget.h"
#include "ui_mainwidget.h"
MainWidget::MainWidget(QWidget *parent) :
QWidget(parent),ui(new Ui::MainWidget)
{
ui->setupUi(this);
tcpServer = new QTcpServer(this);
tcpClient = new QTcpSocket(this);
connect(tcpServer,SIGNAL(newConnection()),this,SLOT(newConnection()));
connect(tcpClient,SIGNAL(readyRead()),this,SLOT(readyRead()));
if(!tcpServer->listen(QHostAddress::Any,6666)){
mDebug("Unable to linsten port 6666");
return;
}
code = QTextCodec::codecForLocale();
ui->lineEdit->setText("127.0.0.1");
}
MainWidget::~MainWidget()
{
delete ui;
delete tcpServer;
delete tcpClient;
}
void MainWidget::newConnection(){
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_7);
out<<"Mess received";
if(tcpServer->hasPendingConnections()){
clientConnection = tcpServer->nextPendingConnection();
connect(clientConnection,SIGNAL(disconnected()),clientConnection,SLOT(deleteLater()));
connect(clientConnection,SIGNAL(readyRead()),this,SLOT(readyRead2()));
clientConnection->write(block);
//clientConnection->disconnectFromHost();
}
}
void MainWidget::on_pushButton_clicked()
{
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_7);
out<<"test mess";
tcpClient->abort();
QString ip = ui->lineEdit->text();
tcpClient->connectToHost(ip,6666);
if(tcpClient->waitForConnected(30000)){
mDebug("Connected "+QString::number(block.length()));
tcpClient->write(block);
//tcpClient->disconnectFromHost();
}
}
void MainWidget::readyRead(){
mDebug("readyRead");
QDataStream in(tcpClient);
in.setVersion(QDataStream::Qt_5_7);
QString data;
QByteArray bytes;
in.startTransaction();
in>>bytes;
data = code->toUnicode(bytes);
qDebug()<<in.commitTransaction();
mDebug(data);
}
void MainWidget::readyRead2(){
mDebug("readyRead2");
QDataStream in(clientConnection);
in.setVersion(QDataStream::Qt_5_7);
QString data;
QByteArray bytes;
in.startTransaction();
in>>bytes;
data = code->toUnicode(bytes);
qDebug()<<in.commitTransaction();
mDebug(data);
}
评论1
最新资源