示例#1
0
int main (int argc, char *argv[])
{
  if (enet_initialize () != 0)
  {
    fprintf (stderr, "An error occurred while initializing ENet.\n");
    return EXIT_FAILURE;
  }

  if (argc < 4)
  {
    return EXIT_FAILURE;
  }
  
  ClientConnection cc;

  if (!cc.connect(argv[1], atoi(argv[2]), argv[3]))
  {
    return 0;
  }
    
  //noecho();
  //curs_set(FALSE);
    
  EcEventContext ec = ece_context_new ();
  ecsignal_init (ec);
  
  EcEventQueue queue = ece_list_create (ec, NULL);
  
  ece_list_add (queue, STDIN_FILENO, ENTC_EVENTTYPE_READ, NULL);
  
  int res = ENTC_EVENT_TIMEOUT;
  
  while (res != ENTC_EVENT_ABORT)
  {
    switch (res)
    {
      case STDIN_FILENO:
      {
        cc.handleKeys();
      }
      break;
    }
    
    res = ece_list_wait (queue, 10000, NULL);
  }
  
  ecsignal_done ();

  ece_context_delete(&ec);
    
  return 0;
}
void Ihm::server_newConnection(const ClientConnection&cC)
{
    qDebug() << QThread::currentThreadId() << Q_FUNC_INFO;

    connect(ui->killAllComPushButton, SIGNAL(clicked()), &cC, SLOT(close()));

    connect(&cC, SIGNAL(sig_isAReader(Reader)), this, SLOT(lecteurActif(Reader))); //lecteur connecté
    connect(&cC, SIGNAL(sig_isNotAReader(QString)), SLOT(lecteurInconnu(QString))); //lecteur (ou autre chose) inconnu
    connect(&cC, SIGNAL(sig_dataRead(QString)), SLOT(traitementTrame(QString)));    //données
    connect(&cC, SIGNAL(sig_closed()), SLOT(slot_closed()));  //débranché
    connect(&cC, SIGNAL(destroyed()), SLOT(slot_destroyed()));

    cC.connect(this, SIGNAL(sig_closeConnection()), SLOT(close()));
}