• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto [C#] Primi passi con i Socket

Errore: Nessun overload del metodo 'ReceiveMessages' accetta 0 argomenti C:\Users\Micky\Documents\Visual Studio 2012\Projects\ServerForm\ServerForm\Form1.cs 33

ah si , perché ThreadStart vuole un metodo void a questo punto fai così usa il costruttore

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

ovviamente

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
ed esegui il casting nella funzione

quindi la creazione del Thread diventa :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
ah si , perché ThreadStart vuole un metodo void a questo punto fai così usa il costruttore

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

ovviamente

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
ed esegui il casting nella funzione

quindi la creazione del Thread diventa :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Errori:
Perfavore, Entra oppure Registrati per vedere i Link!
 
ma leggi i mie mex , ho detto devi eseguire il casting:
ore 21:42 esegui il casting nella funzione

Ah scusa, non ci avrò fatto caso.

Eseguendo il casting funziona tutto alla meraviglia :emoji_smiley:

Però, vorrei che i messaggi "Waiting for connection.." eccetera, vengano scritti ad esempio su una label. Ho provato a fare così ma quando avvio il debug la finestra non appare:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
fino a quando non si connette nessuno è normale dato che Accept causa un interruzione del Ui thread

E in effetti ho provato e mi si mostra dopo...

come faccio a mostrare la finestra sin dall'inizio? Dovrei spostare tutto (se si, dimmi cosa) su un thread separato?
 
E in effetti ho provato e mi si mostra dopo...

come faccio a mostrare la finestra sin dall'inizio? Dovrei spostare tutto (se si, dimmi cosa) su un thread separato?

Potresti dividere il tutto in più classi e poi successivamente eseguire su due thread separati listening(Bind+Accept)-ricezione (per aggiornare i label devi unicamente usare il thread della Ui e quindi dovresti usare anche i delegate)
Il discorso della gestione dei Thread , della loro sincronizzazione e dell'uso dei delegate andrebbero trattati in maniera specifica ^^
 
Potresti dividere il tutto in più classi e poi successivamente eseguire su due thread separati listening(Bind+Accept)-ricezione (per aggiornare i label devi unicamente usare il thread della Ui e quindi dovresti usare anche i delegate)
Il discorso della gestione dei Thread , della loro sincronizzazione e dell'uso dei delegate andrebbero trattati in maniera specifica ^^

Ecco ora mi si è spenta la luce e brancolo nel buio.

Mi stai dicendo di creare un thread per bind e accept e un altro per il receive? Che so sti delegate, aiut D:
 
Ecco ora mi si è spenta la luce e brancolo nel buio.

Mi stai dicendo di creare un thread per bind e accept e un altro per il receive? Che so sti delegate, aiut D:

lascia stare ora , ho generalizzato il problema, inizia facendo così :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

nella classe del form


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


ho schematizzato il tuo programma in modo da ottimizzarne la lettura ed eventuali modifiche ^^. Prima di programmare effettua sempre un analisi generale del problema
 
lascia stare ora , ho generalizzato il problema, inizia facendo così :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

nella classe del form


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


ho schematizzato il tuo programma in modo da ottimizzarne la lettura ed eventuali modifiche ^^. Prima di programmare effettua sempre un analisi generale del problema

Ho aggiunto una nuova classe al progetto:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Che errori?
 
Ho aggiunto una nuova classe al progetto:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Che errori?

non ha senso di dichiarare i membri static , dichiara le variabili d'istanza fuori dal costruttore altrimenti non puoi utilizzarle quel socket ti serve. Inoltre i metodi devono essere accessibili quindi devono essere Pubblici