关于访问服务器的客户端改进的问题(急!!!谢谢!!!)
老栗子 2019-09-19 04:19:47 #include "tcpclient.h"//#include "ui_tcpclient.h"TcpClient::TcpClient(QWidget *parent) :QDialog(parent),ui(new Ui::TcpClient){ ui->setupUi(this); connect(ui->pushButton,SIGNAL(pressed()),this,SLOT(connectToServer())); connect(ui->pushButton_2,SIGNAL(pressed()),this,SLOT(closeConnection())); connect(&tcpSocket,SIGNAL(connected()),this,SLOT(sendRequest())); connect(&tcpSocket,SIGNAL(disconnected()),this,SLOT(connectionClosedByServer())); connect(&tcpSocket,SIGNAL(readyRead()),this,SLOT(update())); connect(&tcpSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(error())); nextBlockSize=0;}TcpClient::~TcpClient(){ delete ui;}void TcpClient::connectToServer(){ tcpSocket.connectToHost("202.117.10.54",1234); ui->pushButton->setEnabled(false); ui->pushButton_2->setEnabled(true); }void TcpClient::sendRequest(){ QString in="123"; QByteArray block; QDataStream out(&block,QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_7); out<<quint16(0)<<in; out.device()->seek(0); out<<quint16(block.size()-sizeof(quint16)); tcpSocket.write(block);}void TcpClient::update(){ QDataStream in(&tcpSocket); QString meg; in.setVersion(QDataStream::Qt_4_7); forever { if (nextBlockSize == 0) { if (tcpSocket.bytesAvailable() < sizeof(quint16)) break; in >> nextBlockSize; } if (nextBlockSize == 0xFFFF) { closeConnection(); break; } if (tcpSocket.bytesAvailable() < nextBlockSize) break; in>>meg; ui->textEdit->clear(); ui->textEdit->append(meg); nextBlockSize = 0; }}void TcpClient::closeConnection(){ tcpSocket.close(); ui->pushButton->setEnabled(true); ui->pushButton_2->setEnabled(false);}void TcpClient::error(){ closeConnection();}这是一键实现一个服务器返回值的客户端程序 小弟想把它改成一键返回50个服务器返回值 但试了很多次都没成功 希望高手指点 最好把大概代码写点 小弟qt编程实在不怎么样 谢谢大家啦