实现服务端,连接后拿到客户端ip地址和端口号
ui设计
修改对应行编辑对象名,修改客户端ip为clientip,客户端端口号为clientport
代码实现
1.网络通信需要加network
2.包含头文件
3.定义一个QTcpserver变量,并初始化
4.服务端监听,以及服务器收到链接信号,建立新链接
5.编写槽函数
源码分享
.h
c
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include<QTcpSocket>
#include<QTcpServer>
#define PORT 8080
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void deal();
private:
Ui::Widget *ui;
QTcpServer *server;
};
#endif // WIDGET_H
.cpp
c
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
server=new QTcpServer;
server->listen(QHostAddress::AnyIPv4,PORT);
connect(server,&QTcpServer::newConnection,this,&Widget::deal);
}
Widget::~Widget()
{
delete ui;
}
void Widget::deal()
{
QTcpSocket* socket=server->nextPendingConnection();
ui->clientip->setText(socket->peerAddress().toString());
ui->clientport->setText(QString::number(socket->peerPort()));
}
演示
服务端