0

我是 QT 编程的新手。我的服务器/客户端代码非常简单,但它们不起作用.......

请看看我的代码中的问题,谢谢。

服务器:

int main(int argc, char** argv)
{
//  QApplication app(argc, argv);
//      Server server;
        QTcpSocket *client_sock =  NULL;
        QTcpServer server;
        server.listen(QHostAddress::Any,8888);
        char buff[100];

    while(1)
    {
            if(server.hasPendingConnections())
            {
                    client_sock = server.nextPendingConnection();
            }
            if(client_sock)
            {
                    qint64 n_rtn;
                    n_rtn = client_sock->bytesAvailable();
                    client_sock->readLine(buff,n_rtn);
                    std::cout<<buff;
            }
    }
//  return app.exec();
}

客户:

int main(int argc, char** argv)
{
//  QApplication app(argc, argv);
  QTcpSocket client;
  QHostAddress addr("127.0.0.1");
  client.connectToHost(addr,8888);

  if(client.isWritable())
  {
        client.write("Hello World!\n");
  }

  client.close();

//  return app.exec();
}

谢谢

4

1 回答 1

2

没有 QApplication 或 QCoreApplication 和 app.exec() 什么都行不通。这就是运行处理所有键盘/鼠标/网络事件的事件循环。

查看聊天和幸运饼干网络服务器示例以了解如何执行此操作 - 它几乎与您编写的代码一样简单

于 2012-07-23T04:19:26.833 回答