[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