1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
// vérif de la validité du port
private bool checkPort (int port)
{
if (port < 65535 && port > 0)
return true;
else
return false;
}
//fonction donnée telle quelle par le prof, vérif l'adresse IP
private IPAddress AdresseValide(string pc)
{
IPAddress Adresse = null;
try
{
IPAddress[] Adresses = Dns.GetHostEntry(pc).AddressList;
for (int i = 0; i < Adresses.Length; i++)
{
Ping p = new Ping();
PingReply r = p.Send(Adresses[i]);
if (r.Status == IPStatus.Success)
if (!Adresses[i].IsIPv6LinkLocal && !Adresses[i].IsIPv6Multicast && !Adresses[i].IsIPv6SiteLocal && !Adresses[i].IsIPv6Teredo)
Adresse = Adresses[i];
}
}
catch (Exception e) { MessageBox.Show("Pas de connexion (" + e.Message + ")"); }
return Adresse;
}
//démarrage du serveur => OK
private void btServeur_Click(object sender, EventArgs e)
{
_estServeur = true;
_online = true;
_monJoueur = tk1;
btServeur.Enabled = btClient.Enabled = false;
btDeco.Enabled = true;
port = int.Parse(tbPort.Text);
IPAddress IPLocal = AdresseValide(Dns.GetHostName());
if (checkPort(port))
{
TServeur = new TcpListener(IPLocal, port);
TServeur.Start();
TClient = TServeur.AcceptTcpClient();
flux = TClient.GetStream();
bw = new BinaryWriter(flux);
br = new BinaryReader(flux);
bw.Write("Connexion initialisée");
MessageBox.Show(br.ReadString());
}
}
//connexion vers le serveur => 127.0.0.1 fait n'imp
private void btClient_Click(object sender, EventArgs e)
{
if (tbIP.Text.Length > 0)
{
_estServeur = false;
_online = true;
_monJoueur = tk2;
btServeur.Enabled = btClient.Enabled = false;
btDeco.Enabled = true;
port = int.Parse(tbPort.Text);
IPAddress IPdistant = AdresseValide(tbIP.Text);
if (checkPort(port))
{
TClient = new TcpClient();
TClient.Connect(IPdistant, port);
flux = TClient.GetStream();
br = new BinaryReader(flux);
bw = new BinaryWriter(flux);
bw.Write("Connexion initialisée depuis " + AdresseValide(Dns.GetHostName()) + ".");
MessageBox.Show(br.ReadString());
}
}
else
MessageBox.Show("Indiquer une addresse de connexion", "Avertissement");
} |
Partager