frmclient.cpp
上传用户:yayahi0755
上传日期:2022-05-14
资源大小:876k
文件大小:2k
源码类别:

浏览器

开发平台:

Unix_Linux

  1. #include "frmclient.h"
  2. /* 
  3.  *  Constructs a frmclient which is a child of 'parent', with the 
  4.  *  name 'name' and widget flags set to 'f' 
  5.  *
  6.  *  The dialog will by default be modeless, unless you set 'modal' to
  7.  *  TRUE to construct a modal dialog.
  8.  */
  9. static const Q_UINT16 ipcPort = 8000;
  10. frmclient::frmclient( QWidget* parent,  const char* name, bool modal, WFlags fl )
  11.     : clientform( parent, name, modal, fl )
  12. {
  13.     socket =new QSocket (this);
  14.     connectFlag=FALSE;
  15.     
  16.     connect( socket, SIGNAL(connected()), this ,SLOT(SocketConnected()));
  17.     connect( socket, SIGNAL(connectionClosed()), this, SLOT(ServerConnectionClosed()) );
  18.     connect( socket, SIGNAL(error(int)), this ,SLOT(SocketError(int)) );
  19.     
  20.     connect( btnSendPicture, SIGNAL(clicked()), SLOT(sendImage()) );
  21.     connect( btnSendText, SIGNAL(clicked()), SLOT(sendText()) );
  22.     connect( btnSendFile, SIGNAL(clicked()), SLOT(sendFile()) );  
  23.     connect( btnConnect, SIGNAL( clicked()), SLOT( connectNet()));
  24.     connect( btnExit, SIGNAL( clicked()), SLOT(exitSystem()));
  25.     
  26.     socket->connectToHost( "196.168.0.100", ipcPort );
  27. }
  28. /*  
  29.  *  Destroys the object and frees any allocated resources
  30.  */
  31. frmclient::~frmclient()
  32. {
  33.     // no need to delete child widgets, Qt does it all for us
  34. }
  35. void frmclient::ServerConnectionClosed()
  36. {
  37.     connectFlag=FALSE;
  38.     txtContent->append (tr("disconnect net"));
  39.     
  40. }
  41. void frmclient::SocketConnected()
  42. {
  43.     connectFlag=TRUE;
  44.     txtContent->append (tr("connect net"));
  45. }
  46. void frmclient::SocketError(int error)
  47. {
  48.     txtContent->append( tr("Error number %1 occurredn").arg(error) );    
  49. }
  50. void frmclient::connectNet()
  51. {
  52. socket->connectToHost( "192.168.0.100", ipcPort );    
  53. }
  54. void frmclient::sendImage()
  55. {
  56.     QString imageName=txtContent->text();
  57.     QImage image( imageName );
  58.     if ( !image.isNull() ) {
  59. sendPacket( image );
  60.     }   
  61. }
  62. void frmclient::sendText()
  63. {
  64.     if(connectFlag)
  65. sendPacket( txtContent->text() ); 
  66.     else
  67. txtContent->append (tr("Net is not connected"));
  68. }
  69. void frmclient::sendFile()
  70. {
  71.     txtContent->setText("");
  72. }
  73. void frmclient::sendPacket( const QVariant &v )
  74. {
  75.     QByteArray ba;
  76.     QDataStream varDs( ba, IO_WriteOnly );
  77.     varDs << v;
  78.     QDataStream ds( socket );
  79.     ds << (Q_UINT32) ba.size();
  80.     socket->writeBlock( ba.data(), ba.size() );    
  81.     
  82. }
  83. void frmclient::exitSystem()
  84. {
  85.     close();
  86. }