Qt服务器客户端代码

问题描述:

我是QT编程的新手。我的服务器/客户端代码很简单,但他们不工作.......Qt服务器客户端代码

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

SERVER:

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

感谢

+0

定义*“不工作” *。它有什么作用?你期望它做什么? – smocking 2012-07-23 02:38:56

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

看看聊天和幸运饼干network server examples来看看如何做到这一点 - 它几乎一样简单的代码,你写

+0

好奇......为什么OP让他们在代码中尚未发表评论?我假设OP试图将它们取消注释? – jdi 2012-07-23 04:22:13

+0

我假设他们从示例中复制并注释掉他们不了解的代码。如果您对gui编程不熟悉,应用程序“粘”在最后一个语句中而不是代码 – 2012-07-23 04:24:16

+0

中,而使用(1)代替我认为的事件循环,这很奇怪。有人可以复制我的代码在他的机器上进行测试以发现问题吗? – mzzhmh 2012-07-23 04:33:53