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

时间:2015-12-07 08:43:18

标签: c++ qt

我在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();
}

&#34; myserver.h&#34;

#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

&#34; myserver.cpp&#34;

#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...";

}

1 个答案:

答案 0 :(得分:1)

public class PlaceHolderControllerF extends ControllerAbF {

@Autowired PlaceHolderRepo pr;

@RequestMapping(value = "placeholderlist", method = RequestMethod.GET)
@ResponseBody
public String editLanguage(HttpSession httpSession) {
    if (getUser(httpSession) == null) {
        return noPermission();
    }
    return Pages.getPlaceHolderList(pr.getAllPlaceholders("name"));
}

读为&#34;如果服务器CAN听取给定端口上的任何地址,请打印if(s_server.listen(QHostAddress::Any, port)) { qDebug() << "Could not start server"; } else { qDebug() << "Listening to port " ; } &#34;

只需将其更改为could not start server,并且错误信息应该消失