第一步:前奏工作
1、 pro文件添加类库 network,Qt += core gui network 。
2、dialog.h 或者其他中 添加头文件: #include <QTcpServer> 和 #include <QTcpSocket>。
3、定义服务器和客户端对象:QTcpServer ser; //服务器对象
QTcpSocket cli; //客户端对象
第二步:编程
1、.h文件
-
#ifndef DIALOG_H
-
#define DIALOG_H
-
#include <QDialog>
-
#include <QTcpServer>
-
#include <QTcpSocket>
-
namespace Ui {
-
class Dialog;
-
}
-
class Dialog : public QDialog
-
{
-
Q_OBJECT
-
public:
-
explicit Dialog(QWidget *parent = 0);
-
~Dialog();
-
private:
-
Ui::Dialog *ui;
-
QTcpServer *ser;
-
QTcpSocket *cli;
-
};
-
#endif // DIALOG_H
2、cpp文件
-
#include "dialog.h"
-
#include "ui_dialog.h"
-
#include <QDebug>
-
Dialog::Dialog(QWidget *parent) :
-
QDialog(parent),
-
ui(new Ui::Dialog)
-
{
-
ui->setupUi(this);
-
//creat a server object
-
ser = new QTcpServer(this);
-
//set server object to listen client
-
//set server's ip to be the same as host
-
//set server's port to be 8888
-
ser->listen(QHostAddress::AnyIPv4,8888);
-
connect(ser,&QTcpServer::newConnection,
-
[=]()
-
{
-
//get cliet's sockfd
-
cli = ser->nextPendingConnection();
-
//get client's ip and port
-
QString cli_ip = cli->peerAddress().toString();
-
quint16 cli_port = cli->peerPort();
-
QString temp = QString("[%1:%2 connect success]").arg(cli_ip).arg(cli_port);
-
qDebug() << temp;
-
}
-
);
-
}
-
Dialog::~Dialog()
-
{
-
delete ui;
-
}