我正在开发一个应用程序来连接2个设备(一个作为服务器,另一个作为客户端),这样他们就可以相互通信(即从其中一个发送并在另一个接收)。这两个设备连接到相同的WiFi。为了测试(在2台Windows笔记本电脑上),我已经从客户端代码制作了一个安装程序文件,并在第二台设备上安装并运行它。但沟通尚未建立。问题在哪里?
我有什么设置吗?
注意:我已经在我的笔记本电脑上运行应用程序(服务器和客户端)并且运行正常。但对于2台笔记本电脑来说,它并没有!
这是我的server.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTcpServer>
#include <QTcpSocket>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
_server = new QTcpServer(this);
_server->listen(QHostAddress::Any,2000);
statusBar()-> showMessage("listening...");
connect(_server,SIGNAL(newConnection()),this, SLOT(newConnection()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::newConnection()
{
_socket =
_server->nextPendingConnection();
connect(_socket, SIGNAL(readyRead())
,this ,SLOT(readData()));
ui->label->setText("connection stablished");
statusBar()->showMessage("");
}
void MainWindow::readData()
{
QByteArray ba = _socket->readAll();
QString str(ba);
ui->plainTextEdit->appendPlainText(str);
}
和client.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTcpSocket>
#include <QHostAddress>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->progressBar->hide();
_socket = new QTcpSocket(this);
connect(_socket,SIGNAL(connected())
,this,SLOT(connectToHost()));
}
//127.0.0.1 == localhost
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::connectToHost()
{
ui->progressBar->hide();
ui->btn_send->setEnabled(true );
}
void MainWindow::on_btn_connect_clicked()
{
ui->progressBar->show();
QHostAddress address("127.0.0.1");
_socket -> connectToHost(address,2000);//inja darkhast connection ersal mishe.
}
void MainWindow::on_btn_send_clicked()
{
QByteArray data = ui->LED_send_text
->text().toLocal8Bit();
_socket->write(data );
}