[Pluto-help] Problemi con le Message Box
diego.joker a inwind.it
diego.joker a inwind.it
Lun 25 Mar 2002 09:32:18 CET
Ciao a tutti, volevo chiedervi un aiuto per l'utilizzo della classe QMessageBox di QT, all'interno di KDE. Ho un problema di visualizzazzione che non riesco a capire: vi riporto subito il codice e poi vi dico che succede.
// thread per la gestione dell' accept
void *accept_thread(void*arg)
{
sockaddr_in from;
int sockNum=(int)arg;
int newSock;
unsigned int fromLen=sizeof(from);
for(;;)
{
if ( (newSock=::accept(sockNum,(struct sockaddr *)&from,&fromLen)) > 0 )
{
char*pointer_IP=::inet_ntoa(from.sin_addr);
QString *title=new QString("CONNECTION");
QString *str=new QString(" Richiesta di connessione dall'host:");
QString *ip_addr=new QString(pointer_IP);
str->append(*ip_addr);
QMessageBox ac(*title,*str,QMessageBox::Information,QMessageBox::Ok,0,0,0,0,TRUE,0);
ac.exec();
for (int i=0;i<32;i++) // i: indice di riga
{
if (i>31) throw;
if (host[i][0]==0)
{
for(int j=0;*pointer_IP!=0;j++) // j: indice di colonna
host[i][j]=*pointer_IP++;
break;
}
}
set_idconn(newSock);
}
}
pthread_exit((void*)0);
}
Questa č la parte di codice di un driver di comunicazione per la gestione delle chiamate: un thread che si occupa di gestire il loop infinito di accept.
Il problema č che quando mi arriva una chiamata da un'host remoto devo avere il modo di visualizzare tale evento e lo faccio con una message box.
Perņ nel momento in cui il sistema arriva ad eseguire la linea
QMessageBox ac(*title,*str,QMessageBox::Information,QMessageBox::Ok,0,0,0,0,TRUE,0);
segnala il seguente errore:
unexpected asyncronous reply
e si blocca l'esecuzione. Sono assolutamente sicuro del fatto che il problema risiede nella gestione del thread perche lo stesso codice senza il thread funziona perfettamente.
Non so proprio cosa fare. . .
More information about the pluto-help
mailing list