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.