morpionReseau/go01/CreerPartieReseau_serv.cs

89 lines
2.9 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace go01
{
public partial class CreerPartieReseau_serv : Form
{
socketPlateauSRV serveur;
public CreerPartieReseau_serv()
{
InitializeComponent();
this.tbUid.Text = Guid.NewGuid().ToString();
this.tbUid.Select(0, 0);
socketPlateauBase.net_adapters(cbNic);
//serveur = new socketPlateau()
}
private void btnCreatePart_Click(object sender, EventArgs e)
{
btnCreatePart.Enabled = false;
tbPartName.Enabled = false;
tbNomJoeur.Enabled = false;
var startTimeSpan = TimeSpan.Zero;
var periodTimeSpan = TimeSpan.FromSeconds(5);
Goban.ConfigGo_S config = new Goban.ConfigGo_S(tbPartName.Text, "", tbNomJoeur.Text, int.Parse(tbTaille.Text), int.Parse(tbPionaAligner.Text), IPAddress.Parse(tbIp.Text), int.Parse(tbPort.Text));
serveur = new socketPlateauSRV(config, null, new socketPlateauSRV.OnConnected(ConnectionEtablie));
serveur.AttenteJoueur();
}
private void ConnectionEtablie(object o, socketPlateauConnected e)
{
Console.WriteLine($"{e.ConfigGo.NomJoeurBlanc} vs {e.ConfigGo.NomJoeurNoir}");
//serveur.senCmd("");
Console.WriteLine("CONNETION ETABLEIE");
Plateau p = new Plateau(e.ConfigGo,serveur);
//this.Hide();
Thread t2 = new Thread(delegate ()
{
p.ShowDialog();
});
t2.Start();
//this.Close();
}
private void broadcast()
{
var Client = new UdpClient();
var RequestData = Encoding.ASCII.GetBytes($"{tbUid.Text};{tbPartName.Text};{tbNomJoeur.Text};{tbTaille.Text};{tbPionaAligner.Text}");
Client.EnableBroadcast = true;
Client.Send(RequestData, RequestData.Length, new IPEndPoint(IPAddress.Broadcast, 8888));
Client.Close();
}
private void cbNic_SelectedIndexChanged(object sender, EventArgs e)
{
var local = NetworkInterface.GetAllNetworkInterfaces().Where(i => i.Name == cbNic.SelectedItem.ToString()).FirstOrDefault();
foreach (UnicastIPAddressInformation ip in local.GetIPProperties().UnicastAddresses)
{
if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
tbIp.Text = ip.Address.ToString();
}
}
}
}
}