QTcpServer同步连接

时间:2013-08-12 13:24:28

标签: qt qtcpserver

我试图使用QTcpServer的同步连接机制来实现服务器。 我的代码非常简单。 PFB。

//////

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

}


int MainScreen::waitForConnection()
{
    bool timeOut = 0;

    if (server->listen(QHostAddress("192.168.70.30"), 10000))
    {

        quint16 port = server->serverPort();
        qDebug() << "Server : "<< (server->serverAddress()).toString() << "Port : "<< port;
        server->waitForNewConnection(-1, &timeOut);
    }

    return 0;
}

//主

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainScreen w;

    w.waitForConnection();

    return a.exec();

}

我正在尝试从Linux客户端应用程序(C)连接到服务器。不幸的是,我没有在我的服务器中获得任何连接。我是否需要做其他事情才能进行同步连接?提前致谢

netstat的PFB结果

netstat -np TCP

活动连接

原始本地地址外部地址状态

TCP 127.0.0.1:62908 127.0.0.1:62909 ESTABLISHED

TCP 127.0.0.1:62909 127.0.0.1:62908 ESTABLISHED

TCP 192.168.70.89:62817 10.47.1.10:49224 ESTABLISHED

TCP 192.168.70.89:62924 10.47.1.101:3128 ESTABLISHED

TCP 192.168.70.89:63209 10.47.1.101:3128 TIME_WAIT

TCP 192.168.70.89:63213 10.47.1.101:3128 TIME_WAIT

TCP 192.168.70.89:63264 10.47.1.101:3128 TIME_WAIT

TCP 192.168.70.89:63265 10.47.1.101:3128 TIME_WAIT

TCP 192.168.70.89:63266 10.47.1.11:8014 CLOSE_WAIT

TCP 192.168.70.89:63267 111.221.112.54:995 TIME_WAIT

TCP 127.0.0.1:62908 127.0.0.1:62909 ESTABLISHED

1 个答案:

答案 0 :(得分:1)

要检查的一些事项:

  • 在服务器上,它是否实际侦听传入连接?在linux上运行netstat -lt或在windows上运行netstat -ta,检查端口是否处于侦听状态。
  • 在主机上使用QHostAddress :: Any而不是特定地址,以防该地址出现问题。

添加:您必须使用命令netstat -nap TCP在Windows中运行netstat,以便显示侦听端口。但由于您可以在本地连接到您的网络服务器,然后显示它正在运行。看起来你在windows下运行。如果是这样,你试图禁用窗口的防火墙?如果您正在运行防病毒软件,请尝试禁用它,以防它阻止来自计算机外部的连接。最后,确保机器可以通过ping看到对方。