首先下载一个网络调试助手,测试自己写的客户端对不对。
1、配置
如果使用的QT Creator,在pro中添加QT += network
如果使用的VS+QT,选中项目->菜单QT5->Qt Project Settings->Qt Modules->选着Network多选按钮
2、UI
界面摆放:
2个QLineEdit:一个输入IP地址,一个输入端口号
2个PushButton:一个连接服务端按钮,一个发送数据按钮
2个QTextEdit:一个接收服务端数据显示,一个发送数据显示
3、头文件
#include <QTcpSocket>
QTcpSocket *socket;
private slots:中添加void socket_Read();//接收数据的信号,用来调用QTextEdit显示服务端数据
4、Cpp
构造函数中:
socket = new QTcpSocket();
QObject::connect(socket, &QTcpSocket::readyRead, this, &Dialog::socket_Read);//槽函数
析构函数:
delete this->socket;//VS中有问题
连接按钮槽函数中:
QString IP;
int port;
//获取IP地址
IP = ui->lineEdit->text();
//获取端口号
port = ui->lineEdit2->text().toInt();
//取消已有的连接
socket->abort();
//连接服务器
socket->connectToHost(IP, port);
//等待连接成功
if(!socket->waitForConnected(10000))
{
return;
}
else
{
ui->pushbutton1->setEbabled(false);
}
发送按钮槽函数中:
socket->write(ui->textEdit2->toPlainText().toLatin1());//获取需要发送编辑框中数据发送
socket->flush();
Read槽函数:
QByteArray buffer;
//读取缓冲区数据
buffer = socket->readAll();
if(!buffer.isEmpty())
{
QString str = ui->textEdit2->toPlainText();
str+=tr(buffer);
//刷新显示
ui->textEdit2->setText(str);
}
大概就是这样,也就几十行代码,可以用网络调试助手测试下。