首先,QT5是自带QSerialPort这个类的,使用时需要在pro文件里面添加一行:
服务端:
QT += network
然后直接引用头文件就可以使用了。
#include <QTcpServer>
#include <QTcpSocket>
server和socket声明
QTcpServer* server;
QTcpSocket* socket;
开启服务
server = new QTcpServer();
ui->send->setEnabled(false);
QObject::connect(server,&QTcpServer::newConnection,this,&MainWindow::new_connect);
server->listen(QHostAddress::Any,8080);
信号函数
void MainWindow::new_connect()
{
ui->send->setEnabled(true);
socket = server->nextPendingConnection();
QObject::connect(socket,&QTcpSocket::readyRead,this,&MainWindow::socket_read);
}
读取和发送
buffer = socket->readAll();
socket->write("ads");//没有连接时会奔溃
客户端:
开启服务:
socket = new QTcpSocket();
QString ip="127.0.0.1";
int port=8080;
socket->abort();//取消所有连接;
socket->connectToHost(ip,port);
QObject::connect(socket,&QTcpSocket::readyRead,this,&MainWindow::socket_read);
接收和发送
buffer = socket->readAll();
socket->write("123");
中文乱码
接收
QString str = QString::fromLocal8Bit(socket->readAll());
ui->show->setText(str);
QString messge="我是";
socket->write(messge.toLocal8Bit());//没有连接时会奔溃