运行时错误:无法启动服务器

Runtime Error: could not start server

本文关键字:启动 服务器 运行时错误      更新时间:2023-10-16

我在Qt中编写了一个客户端-服务器程序,客户端向服务器发送了一些消息,但在编译过程中,"startserver"函数无法运行,我得到了以下错误:无法启动服务器。你能告诉我问题出在哪里吗?

"main.cpp"

#include <QApplication>
#include "mythread.h"
#include "myserver.h"
#include "QtSql/QtSql"
#include "QMessageBox"
#include "mainwindow.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
myserver server;
server.startserver();
MainWindow w;
w.show();
return a.exec();
}

"myserver.h"

#ifndef MYSERVER_H
#define MYSERVER_H
#include <QMainWindow>
#include "QTcpServer"
#include "mythread.h"
#include "QTcpSocket"

 namespace Ui
 {
  class myserver;
}

class myserver : public QObject
{
 Q_OBJECT
public:
server(QObject * parent = 0);
explicit myserver(QObject *parent = 0);
void startserver();

public slots:
void acceptConnection();
protected:

void incomingConnections(qintptr socketDescriptor);
QTcpSocket* c_client;
QTcpServer s_server;
private:
qintptr socketDescriptor;

 };
#endif

"myserver.cpp"

#include "myserver.h"
#include "mythread.h"

myserver::myserver(QObject *parent) :
QObject(parent)
 {
 }
void myserver::startserver()
{
int port = 1234;
if(s_server.listen(QHostAddress::Any, port))
  {
    qDebug() << "Could not start server";
  }
 else
  {
    qDebug() << "Listening to port " ;
  }
 }
void myserver::incomingConnections(qintptr socketDescriptor)
{
  mythread *thread = new mythread(socketDescriptor,this);
  qDebug() << socketDescriptor << " Connecting...";
  connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
  thread->start();
}

void myserver::acceptConnection()
{
  c_client = s_server.nextPendingConnection();
  connect(c_client,SIGNAL(readyRead()),this, SLOT(startRead()));
  qDebug() << " Connecting...";
}
if(s_server.listen(QHostAddress::Any, port))
{
  qDebug() << "Could not start server";
}
else
{
  qDebug() << "Listening to port " ;
}

读取为"如果服务器CAN侦听给定端口上的任何地址,则打印could not start server"

只需将其更改为if (!s_server.listen(...)),错误的消息就应该是