Ho un server con thread.Sposta QTcpSocket in una nuova discussione dopo l'avvio della connessione
QTcpSocket deve essere creato sul thread su cui deve essere eseguito, FI: Qt - Handle QTcpSocket in a new thread passando il descrittore di socket.
Il mio problema è che ho bisogno di avere un pool di thread e spostare il socket su un thread specifico DOPO che il client ha inviato un token specifico che definisce su quale thread deve essere il socket.
In altre parole, ho bisogno di leggere il socket per sapere su quale thread metterlo in anticipo.
Alcuni idea sarebbe quella di legarsi prima a un QTcpSocket, leggere, quindi inviare il descrittore per il filo e creare un altro QTcpSocket ma il dottore dice:
Nota: Non è possibile inizializzare due prese astratti con lo stessodescrittore di socket nativo.
Un'altra soluzione è creare il socket in un thread separato e quindi unire entrambi i thread insieme, anche se non so se sia possibile.
O forse è possibile leggere il descrittore di socket sul thread principale prima di chiamare setSocketDescriptor sul thread secondario, se ciò è possibile?
per curiosità, perché dovresti fare in modo che il client ti dica su quale thread devi eseguire il tuo 'QTcpSocket'? – Mike
* token specifico che definisce su quale thread deve essere il socket * - Mi chiedo come sia possibile specificare * quale * thread deve essere il socket. AFAIK non è possibile specificare l'id del thread durante la creazione di un thread. Se vuoi specificare il nome del thread, puoi semplicemente chiamare thread -> setObjectName ("Name") e questo non ha nulla a che fare con i socket. – rightaway717
perché non si fa semplicemente socket-> moveToThread (otherthread)? –