#include<QtWidgets/QApplication>#include<QtNetwork/QTcpServer>#include<QtNetwork/QTcpSocket>#include<QtCore/QDebug>classTcpServer:publicQTcpServer{
Q_OBJECT
public:TcpServer(QObject *parent =nullptr):QTcpServer(parent){if(listen(QHostAddress::Any,12345)){qDebug()<<"Server is listening on port 12345";}else{qDebug()<<"Server failed to start:"<<errorString();}}protected slots:voidincomingConnection(qintptr socketDescriptor)override{
QTcpSocket *socket =newQTcpSocket(this);if(socket->setSocketDescriptor(socketDescriptor)){qDebug()<<"Client connected:"<< socket->peerAddress().toString();connect(socket,&QTcpSocket::readyRead,this,[socket](){
QByteArray data = socket->readAll();qDebug()<<"Received from client:"<< data;
socket->write("Hello from server");});connect(socket,&QTcpSocket::disconnected, socket,&QTcpSocket::deleteLater);}else{qDebug()<<"Failed to set socket descriptor:"<< socket->errorString();}}};intmain(int argc,char*argv[]){
QApplication app(argc, argv);
TcpServer server;return app.exec();}#include"main.moc"
3. TCP 客户端程序设计
#include<QtWidgets/QApplication>#include<QtNetwork/QTcpSocket>#include<QtCore/QDebug>intmain(int argc,char*argv[]){
QApplication app(argc, argv);
QTcpSocket socket;
socket.connectToHost("127.0.0.1",12345);connect(&socket,&QTcpSocket::connected,[](){qDebug()<<"Connected to server";});connect(&socket,&QTcpSocket::readyRead,[&socket](){
QByteArray data = socket.readAll();qDebug()<<"Received from server:"<< data;});
socket.write("Hello from client");return app.exec();}