uengine-runner/Android X86/AXVM/getipserver.cpp

45 lines
1.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "getipserver.h"
#include <QTcpServer>
#include <mainwindow.h>
#include <QtNetwork>
#include <QHostAddress>
#include <QMessageBox>
GetIPServer::GetIPServer(QLabel *localIp)
{
lock = false;
tcp = new QTcpServer();
QHostAddress ip("0.0.0.0");
tcp->listen(QHostAddress::Any, 30201);
// 获取 IP 地址
QString IpAddress;
foreach (QHostAddress address, QNetworkInterface::allAddresses())
{
if(address.protocol() == QAbstractSocket::IPv4Protocol && address.toString() != "127.0.0.1" && address.toString() != "192.168.250.1"){
IpAddress = address.toString();
}
}
qDebug() << "服务器IP" << IpAddress;
qDebug() << "服务器端口:" << tcp->serverPort();
localIp->setText("访问http://" + IpAddress + ":" + QString::number(tcp->serverPort()) + " 连接");
connect(tcp, &QTcpServer::newConnection, this, [this](){
tcpSocket = tcp->nextPendingConnection();
QString ipAddress = QHostAddress(tcpSocket->peerAddress().toIPv4Address()).toString();
qDebug() << ipAddress;
qDebug() << tcpSocket->peerPort();
tcpSocket->write("HTTP/1.1 200 OK"\
"Content-Type: text/html;charset=utf-8"\
"\n\n");
tcpSocket->write(QString("<html><body><p>IP Address: " + ipAddress + "</p><p>Get Port: " + QString::number(tcpSocket->peerPort()) + "</p></body></html>").toLocal8Bit());
tcpSocket->close();
if(lock){
return;
}
lock = true;
QMessageBox::question(NULL, "提示", "IP地址为“" + ipAddress + "”想要连接,是否连接?");
lock = false;
});
qDebug() << "a";
}