0

msn メッセンジャーのようなプログラムを作成したいのですが、ネットワークで qt5 を使用しています。ローカル サーバーとの新しい接続を開くと、機能しません。サーバーが接続されていないことがわかりません。理由

メインウィンドウ.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtNetwork/QTcpServer>
#include <QtNetwork/QTcpSocket>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

    void newConnection ();

private:
    Ui::MainWindow *ui;
    QTcpServer *server;
};

#endif // MAINWINDOW_H

メインウィンドウ.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    server = new QTcpServer(this);

    connect(server , SIGNAL(newConnection()) , this , SLOT(newConnection()));
    if(server->listen(QHostAddress::Any , 5050))
    {
        ui->label->setText("Not Start");
    }

    else
    {
        ui->label->setText("Server Started Now");
    }

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::newConnection()
{
    QTcpSocket *socket = server->nextPendingConnection();

    socket->write("Hello Islam");

    socket->flush();

    socket->waitForBytesWritten(3000);

    socket->close();
}

void MainWindow::on_pushButton_clicked()
{
    newConnection();
}

これは呼び出しライブラリ用です

#-------------------------------------------------
#
# Project created by QtCreator 2013-11-03T10:00:37
#
#-------------------------------------------------

QT       += core gui network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = TCPTEST
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

mainwindow コンストラクターで新しい接続を呼び出そうとしましたが、機能しませんでした

4

1 に答える 1

0

エラーがあったと思います

if(server->listen(QHostAddress::Any , 1234))

それはうまくいきましたが、そうでなければなりません

if(!server->listen(QHostAddress::Any , 1234))

サーバーを起動するには

于 2013-11-04T09:57:25.260 に答える