Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C#] Uso di thread in socket server

    Ciao a tutti,
    mi faccio vivo dopo del tempo per chiedervi una cosa.
    Non ho capito bene come usare i thread in questa classe socketserver che ho creato.
    Vi spiego.
    Ho pensato di utilizzare due thread all'interno di questa classe.
    codice:
    Thread sks_receiver;
    Thread sks_processor;
    inizializzati così
    codice:
     
    this.sks_receiver = new Thread(new ThreadStart(this.sks_listen));
    this.sks_receiver.Start();
    this.sks_processor = new Thread(new ThreadStart(this.sks_process));
    nel metodo sks_listen
    codice:
    public void sks_listen()         
    {            
    [... omissis ...]
                     while (this.sks_is_listen)
                     { 
                        //ricezione messaggio
                         if (((asyncsock)this.sks_asyn_array[this.sks_asyn_array.Count - 1]).asyn_rec_msg != "" || ((asyncsock)this.sks_asyn_array[this.sks_asyn_array.Count - 1]).asyn_rec_msg.IndexOf("<EOF>") > -1)
                         {             
                             this.sks_processor.Start();
                             this.sks_asyn_array.Add(new asyncsock());
                             ((asyncsock)this.sks_asyn_array[this.sks_asyn_array.Count - 1]).asyn_socket.Bind(endpoint);
                             ((asyncsock)this.sks_asyn_array[this.sks_asyn_array.Count - 1]).asyn_socket = listener.AcceptSocket();
                         }
                     }
    }
    avvio l'altro thread.
    alla prima socket che si connette non c'è problema, ma dalla seconda l'eccezione data è questa



    ho provato a gestire i casi in vari modi controllando con IsAlive con ThreadStatus, ma in un modo o nell'altro mi fermo sempre lì.

    come posso risolvere questo nodo?

    grazie a tutti coloro che mi aiuteranno.
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per ogni client che si collega devi fare un

    new Thread

    e non semplicemente uno Start dell'unico thread creato in precedenza.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    grazie mille
    io->
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.