ExclusiveAddressUse - TcpClient - Socket

di il
2 risposte

ExclusiveAddressUse - TcpClient - Socket

Studio la teoria.
Provo a mettere in pratica.
Il codice genera un errore.
Vado sulla guida e inizio a studiare gli esempi e gli argomenti correlati.

Faccio delle prove ma il risultato è diverso da quello che mi aspettavo.

è la chiave di lettura del manuale che ancora non comprendo.

-----
ExclusiveAddressUse
Ottiene o imposta un valore Boolean che specifica se la classe TcpClient consente a un unico client di usare una porta.


using System.Net.Sockets;

namespace prova
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
	    //creo qui le istanze perchè per impostare la proprietà a true non deve essere associato o connesso altrimenti genera un errore.	
            TcpClient x = new TcpClient();
            TcpClient y = new TcpClient();
            
            // Dopo aver creato le istanze imposto la proprietà a true
        private void chkesclusivo_CheckedChanged(object sender, EventArgs e)
        {
            if (chkesclusivo.Checked)
            {
                x.ExclusiveAddressUse = true;
            }
            else
            {
                x.ExclusiveAddressUse = false;
            }
        }
        
        // prima di creare la connessione a una porta verifico il tutto. le connessione di x e y sono false. 
       // mentre la proprietà esclusiva di x è true mentre di y è false.
	// ma appena connetto x o y sulla stessa porta la proprietà esclusiva di x si imposta in automatica a false.
        
        private void btnCrea_Click(object sender, EventArgs e)
        {
            string port;
            port = textBox1.Text;
            if (chkX.Checked) x = new TcpClient("localhost",Convert.ToInt32(port));
            if (chkY.Checked) y = new TcpClient("localhost", Convert.ToInt32(port));
        }
       
       
        private void btnVerifica_Click(object sender, EventArgs e)
        {
            MessageBox.Show("verifica Connessione: \nx: " + x.Connected + "\ny: " + y.Connected);
            MessageBox.Show("verifica Accesso Esclusivo: \nx: " + x.ExclusiveAddressUse + "\ny: " + y.ExclusiveAddressUse);
        }
   
    }
}
Non è la prima volta che leggo il manuale e non riesco a risolvere il problema. Non è questo problema in se che vorrei risolvere.
ma capire "come comprendere" il manuale potrebbe essere utile. e ho preso questo codice di esempio per capire dove sbaglio.

Un saluto a tutti e grazie.

2 Risposte

  • Re: ExclusiveAddressUse - TcpClient - Socket

    Pivello ha scritto:


    Faccio delle prove ma il risultato è diverso da quello che mi aspettavo.
    E cosa ti aspetti?

    Pivello ha scritto:


    Non è la prima volta che leggo il manuale e non riesco a risolvere il problema.
    Ma il problema qual è?
  • Re: ExclusiveAddressUse - TcpClient - Socket

    Alka sei contento? ho fatto una domanda senza troppe manfrine.
    avevo scritto nel codice il problema. Scusa.
    // prima di creare la connessione a una porta verifico il tutto. le connessione di x e y sono false.
    // mentre la proprietà esclusiva di x è true mentre di y è false.
    // ma appena connetto x o y sulla stessa porta la proprietà esclusiva di x si imposta in automatica a false.

    non mi serve la soluzione. mi serve capire cosa non capisco.
    perché sulla stessa porta riesco a collegarmi con un altra istanza?
    E' solo per imparare. Grazie sempre per la tua presenza costante.
Devi accedere o registrarti per scrivere nel forum
2 risposte