QT下TCP協議通信的簡單Server端

 

  1. /********************** 
  2.  *Write to 5 July 2012* 
  3.  *By Mr Rao           * 
  4.  **********************/ 
  5. #ifndef _SERVER_H_ 
  6. #define _SERVER_H_ 
  7.  
  8. #include <QDialog> 
  9. #include <QPushButton> 
  10. #include <QTextEdit> 
  11. #include <QGridLayout> 
  12. #include <QTcpSocket> 
  13. #include <QTcpServer> 
  14.  
  15. class Dialog:public QDialog 
  16.     Q_OBJECT 
  17. public
  18.     Dialog(); 
  19.     ~Dialog(); 
  20. public slots: 
  21.     void recv_slot(); 
  22.     void connect_slot(); 
  23. private
  24.     QPushButton *exitButton; 
  25.     QTextEdit *textEdit; 
  26.     QGridLayout *layout; 
  27.     QTcpServer *tcpServer; 
  28.     QTcpSocket *tcpSocket; 
  29. }; 
  30. #endif 

 

  1. #include "server.h" 
  2.  
  3. Dialog::Dialog() 
  4.     exitButton = new QPushButton("exit"); 
  5.     textEdit = new QTextEdit; 
  6.     layout = new QGridLayout; 
  7.     tcpServer = new QTcpServer; 
  8.  
  9.     layout->addWidget(textEdit,0,0,4,6); 
  10.     layout->addWidget(exitButton,5,4,1,2); 
  11.       
  12.     setLayout(layout); 
  13.       
  14.         tcpServer->listen(QHostAddress::Any , 1573); 
  15.  
  16.         connect(tcpServer,SIGNAL(newConnection()),this,SLOT(connect_slot())); 
  17.     connect(exitButton,SIGNAL(clicked()),this,SLOT(close())); 
  18. Dialog::~Dialog() 
  19.     delete exitButton; 
  20.     delete textEdit; 
  21.     delete layout; 
  22.     delete tcpServer; 
  23. void Dialog::connect_slot() 
  24.     tcpSocket = tcpServer->nextPendingConnection(); 
  25.     connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(recv_slot())); 
  26. void Dialog::recv_slot() 
  27.     QByteArray byte; 
  28.     byte = tcpSocket->readAll(); 
  29.     textEdit->setPlainText(QString(byte)); 

 

  1. #include <QApplication> 
  2. #include "server.h" 
  3.  
  4. int main(int argc,char **argv) 
  5.     QApplication app(argc,argv);      
  6.     Dialog dlg; 
  7.     dlg.show();  
  8.     return app.exec(); 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章