modif architecture compil&test sans serveur ok

This commit is contained in:
Adrien VAN DAMME 2019-01-04 11:28:58 +01:00
parent f88809a50a
commit 9db1e53dd7
10 changed files with 128 additions and 194 deletions

View File

@ -37,7 +37,7 @@ namespace go01
var startTimeSpan = TimeSpan.Zero;
var periodTimeSpan = TimeSpan.FromSeconds(5);
socketPlateauBase.ConfigGo_S config = new socketPlateauBase.ConfigGo_S(tbUid.Text, tbPartName.Text, "", tbNomJoeur.Text, int.Parse(tbTaille.Text), int.Parse(tbPionaAligner.Text), IPAddress.Parse(tbIp.Text), int.Parse(tbPort.Text));
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.OnJoinServ(ConnectionEtablie));
serveur.AttenteJoueur();
@ -45,10 +45,10 @@ namespace go01
}
private void ConnectionEtablie(object o, socketPlateauServJoinArgs e)
{
Console.WriteLine($"{e.ConfigGo.NomJoeurClient} vs {e.ConfigGo.NomJoeurServeur}");
Console.WriteLine($"{e.ConfigGo.NomJoeurBlanc} vs {e.ConfigGo.NomJoeurNoir}");
serveur.senCmd(new socketPlateauBase.CommandeSocket_S(socketPlateauBase.commande_E.Join, new socketPlateauServACKArgs(true)));
Console.WriteLine("CONNETION ETABLEIE");
Plateau p = new Plateau(e.ConfigGo.Taille, e.ConfigGo.PionAligner, e.ConfigGo.NomJoeurServeur, e.ConfigGo.NomJoeurClient);
Plateau p = new Plateau(e.ConfigGo.taille, e.ConfigGo.PionAligner, e.ConfigGo.NomJoeurNoir, e.ConfigGo.NomJoeurBlanc);
//this.Hide();
p.ShowDialog();
//this.Close();

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
@ -12,22 +13,16 @@ namespace go01
{
public class Goban
{
public PictureBox Conteneur;
int nombreDePionAAligne;
int ptBlanc = 0, ptNoir = 0;
public Plateau Fenetre;
bool win = false;
public int dim;
Label LabelPlayerTurn;
public string PlayerTurn { get { return this.LabelPlayerTurn.Text; } }
string playerWName, playerBName;
string playerWName { get => cfg.NomJoeurBlanc; }
string playerBName{ get => cfg.NomJoeurNoir; }
List<PictureBox> pboxList = new List<PictureBox>();
public enum Occupant_E { Vide, Blanc, Noir, LAST }
public enum Joueur_E { Blanc, Noir, LAST }
Joueur_E tour;
Joueur_E Tour
@ -52,8 +47,11 @@ namespace go01
}
}
Occupant_E[,] tableauOccupation;
ConfigGo_S cfg;
#region struct&enum
public enum Occupant_E { Vide, Blanc, Noir, LAST }
public enum Joueur_E { Blanc, Noir, LAST }
[Flags]
enum Deplacement_E
{
@ -69,20 +67,18 @@ namespace go01
[Serializable]
public struct sauvegarde_S
{
public string nomBlanc, nomNoir;
public ConfigGo_S cfg;
public int ptBlanc, ptNoir;
public int dimGoban, nbAlignementToWin;
public bool win;
public Goban.Occupant_E[,] tableauOccupation;
public Goban.Joueur_E tour;
public sauvegarde_S(string nomBlanc, string nomNoir, int pointBlanc, int pointNoir, int nbAlignementToWin, int dimGoban, Goban.Occupant_E[,] tableauOccupation, Goban.Joueur_E tour, bool win)
public sauvegarde_S(int pointBlanc, int pointNoir, Goban.Occupant_E[,] tableauOccupation, Goban.Joueur_E tour, bool win, ConfigGo_S cfg)
{
this.nomBlanc = nomBlanc; this.nomNoir = nomNoir;
this.ptBlanc = pointBlanc; this.ptNoir = pointNoir;
this.dimGoban = dimGoban; this.nbAlignementToWin = nbAlignementToWin;
this.win = win;
this.tableauOccupation = tableauOccupation;
this.tour = tour;
this.cfg = cfg;
}
}
struct carrefour_S
@ -95,16 +91,48 @@ namespace go01
SensDeDeplacment = sens;
}
}
[Serializable]
public struct ConfigGo_S
{
public readonly string Uid;
private string partName;
public string PartName { get { return partName; } }
public string NomJoeurBlanc;
public string NomJoeurNoir;
public readonly int taille;
public readonly int pionaAligner;
public int PionAligner { get { return pionaAligner; } }
public readonly IPAddress IpServeur;
public readonly int port;
public ConfigGo_S(string PartName, string NomJoeurBlanc, string NomJoeurNoir, int Taille, int PionaAligner, IPAddress ipServeur=null, int port=-1)
{
this.Uid = Guid.NewGuid().ToString(); ;
this.partName = PartName;
this.NomJoeurBlanc = NomJoeurBlanc;
this.NomJoeurNoir = NomJoeurNoir;
this.taille = Taille;
this.pionaAligner = PionaAligner;
this.IpServeur = ipServeur;
this.port = port;
}
public override string ToString()
{
return partName;
}
public static implicit operator string(ConfigGo_S part)
{
return part.ToString();
}
}
#endregion
public Goban(Plateau fenetre, PictureBox conteneur, sauvegarde_S s)
{
tableauOccupation = s.tableauOccupation;
playerBName = s.nomNoir;
playerWName = s.nomBlanc;
nombreDePionAAligne = s.nbAlignementToWin;
dim = s.dimGoban;
this.cfg = s.cfg;
this.Conteneur = conteneur;
this.Fenetre = fenetre;
@ -115,29 +143,22 @@ namespace go01
GenerationPlateau(false);
//redrawAllpb();
}
public Goban(Plateau fenetre, PictureBox conteneur, socketPlateauBase.ConfigGo_S cfg) : this(fenetre, conteneur, cfg.Taille, cfg.PionAligner, cfg.NomJoeurClient, cfg.NomJoeurServeur)
{}
public Goban(Plateau fenetre, PictureBox conteneur, int dim, int nbPionAlignn, string playerW, string playerB)
public Goban(Plateau fenetre, PictureBox conteneur, ConfigGo_S cfg)
{
int x = 0;
nombreDePionAAligne = nbPionAlignn;
this.Conteneur = conteneur;
this.dim = dim;
this.Fenetre = fenetre;
playerWName = playerW;
playerBName = playerB;
fenetre.lblBlanc = playerB + ":0";
fenetre.lblNoir = playerW + ":0";
this.cfg = cfg;
fenetre.lblBlanc = playerWName + ":0";
fenetre.lblNoir = playerBName + ":0";
Tour = Joueur_E.Noir;
//gen des tab
tableauOccupation = new Occupant_E[dim, dim];
tableauOccupation = new Occupant_E[cfg.taille, cfg.taille];
GenerationPlateau();
}
public Goban(Plateau fenetre, PictureBox conteneur, int dim, int nbPionAlignn, string playerW, string playerB) : this(fenetre,conteneur, new ConfigGo_S("",playerW,playerB,dim,nbPionAlignn))
{
}
public void PaintPb(object sender, PaintEventArgs e)
{
@ -191,7 +212,7 @@ namespace go01
}
private int[] GetXY(int i)
{
return new int[2] { i % dim, i / dim };
return new int[2] { i % cfg.taille, i / cfg.taille };
}
private int[] GetXYStr(string s)
{
@ -200,11 +221,11 @@ namespace go01
}
private int GetX(int i)
{
return i % dim;
return i % cfg.taille;
}
private int GetY(int i)
{
return i / dim;
return i / cfg.taille;
}
bool RechercheTeritoir(int x, int y)
@ -213,7 +234,7 @@ namespace go01
int pionAligneDsRecherche = 1;
int[,] tmpParcour = new int[dim, dim];
int[,] tmpParcour = new int[cfg.taille, cfg.taille];
tmpParcour[origine.X, origine.Y] = 1;
List<carrefour_S>pointsSuivant = RecherchePointsSuivant(origine,(Deplacement_E)0xff);//Recherche les point autour du pion
if (pointsSuivant.Count == 0)
@ -231,7 +252,7 @@ namespace go01
printTab(tmpParcour);
}
Console.WriteLine(pionAligneDsRecherche);
if (pionAligneDsRecherche >= nombreDePionAAligne*(Math.Ceiling((double)pionAligneDsRecherche/(double)nombreDePionAAligne)))
if (pionAligneDsRecherche >= cfg.pionaAligner*(Math.Ceiling((double)pionAligneDsRecherche/(double)cfg.pionaAligner)))
return true;
}
return false;
@ -248,23 +269,23 @@ namespace go01
{
PointsTrouver.Add(new carrefour_S(new Point(p.X,p.Y-1),Deplacement_E.S));
}
if (p.Y - 1 >= 0 && p.X+1 < dim && tableauOccupation[p.X+1,p.Y-1] == occupant && (deplacement & Deplacement_E.SD) == Deplacement_E.SD)
if (p.Y - 1 >= 0 && p.X+1 < cfg.taille && tableauOccupation[p.X+1,p.Y-1] == occupant && (deplacement & Deplacement_E.SD) == Deplacement_E.SD)
{
PointsTrouver.Add(new carrefour_S(new Point(p.X+1,p.Y-1),Deplacement_E.SD));
}
if (p.X + 1 < dim && tableauOccupation[p.X+1,p.Y] == occupant && (deplacement & Deplacement_E.D) == Deplacement_E.D)
if (p.X + 1 < cfg.taille && tableauOccupation[p.X+1,p.Y] == occupant && (deplacement & Deplacement_E.D) == Deplacement_E.D)
{
PointsTrouver.Add(new carrefour_S(new Point(p.X+1,p.Y),Deplacement_E.D));
}
if (p.X + 1 < dim && p.Y+1<dim && tableauOccupation[p.X+1,p.Y+1] == occupant && (deplacement & Deplacement_E.ID) == Deplacement_E.ID)
if (p.X + 1 < cfg.taille && p.Y+1<cfg.taille && tableauOccupation[p.X+1,p.Y+1] == occupant && (deplacement & Deplacement_E.ID) == Deplacement_E.ID)
{
PointsTrouver.Add(new carrefour_S(new Point(p.X+1,p.Y+1),Deplacement_E.ID));
}
if (p.Y + 1 < dim && tableauOccupation[p.X,p.Y+1] == occupant && (deplacement & Deplacement_E.I) == Deplacement_E.I)
if (p.Y + 1 < cfg.taille && tableauOccupation[p.X,p.Y+1] == occupant && (deplacement & Deplacement_E.I) == Deplacement_E.I)
{
PointsTrouver.Add(new carrefour_S(new Point(p.X,p.Y+1),Deplacement_E.I));
}
if (p.X-1>=0 && p.Y + 1 < dim && tableauOccupation[p.X-1,p.Y+1] == occupant && (deplacement & Deplacement_E.IG) == Deplacement_E.IG)
if (p.X-1>=0 && p.Y + 1 < cfg.taille && tableauOccupation[p.X-1,p.Y+1] == occupant && (deplacement & Deplacement_E.IG) == Deplacement_E.IG)
{
PointsTrouver.Add(new carrefour_S(new Point(p.X-1,p.Y+1),Deplacement_E.IG));
}
@ -285,9 +306,9 @@ namespace go01
void printTab(int[,] Tab)
{
for(int y = 0;y<dim;y++)
for(int y = 0;y<cfg.taille;y++)
{
for (int x = 0; x < dim; x++)
for (int x = 0; x < cfg.taille; x++)
{
Console.ForegroundColor = (Tab[x, y] !=0 ) ? ConsoleColor.Green : ConsoleColor.White;
Console.Write(Tab[x, y]);
@ -300,12 +321,12 @@ namespace go01
}
int xyToi(int x, int y)
{
return x + dim* y;
return x + cfg.taille* y;
}
public void redrawAllpb()
{
for(int i=0;i<dim*dim;i++)
for(int i=0;i<cfg.taille*cfg.taille;i++)
{
if (tableauOccupation[GetX(i), GetY(i)] != Occupant_E.Vide)
{
@ -339,8 +360,8 @@ namespace go01
}
public void resetGoban()
{
for (int x = 0; x < dim; x++)
for (int y = 0; y < dim; y++)
for (int x = 0; x < cfg.taille; x++)
for (int y = 0; y < cfg.taille; y++)
tableauOccupation[x, y] = Occupant_E.Vide;
redrawAllpb();
win = false;
@ -356,14 +377,14 @@ namespace go01
public sauvegarde_S sauvegarder()
{
sauvegarde_S s = new sauvegarde_S(playerWName, playerBName, ptBlanc,ptNoir, nombreDePionAAligne, dim, tableauOccupation, tour, win);
sauvegarde_S s = new sauvegarde_S(ptBlanc,ptNoir, tableauOccupation, tour, win, cfg);
return s;
}
public static sauvegarde_S sauvegarder(Goban g)
{
sauvegarde_S s = new sauvegarde_S(g.playerWName, g.playerBName, g.ptBlanc, g.ptNoir, g.nombreDePionAAligne, g.dim, g.tableauOccupation, g.tour, g.win);
sauvegarde_S s = new sauvegarde_S(g.ptBlanc, g.ptNoir, g.tableauOccupation, g.tour, g.win, g.cfg);
return s;
}
@ -381,43 +402,43 @@ namespace go01
this.LabelPlayerTurn.Text = "playerW";
Fenetre.Controls.Add(this.LabelPlayerTurn);
for (int i = 0; i < dim * dim; i++) //Genération du goban
for (int i = 0; i < cfg.taille * cfg.taille; i++) //Genération du goban
{
pboxList.Add(new PictureBox());
//pboxList[i].Paint += new PaintEventHandler(this.PaintPb);
pboxList[i].Location = new Point((i % dim) * (Conteneur.Width / dim), (i / dim) * (Conteneur.Height / dim));
pboxList[i].Width = Conteneur.Width / dim;
pboxList[i].Height = Conteneur.Height / dim;
pboxList[i].Location = new Point((i % cfg.taille) * (Conteneur.Width / cfg.taille), (i / cfg.taille) * (Conteneur.Height / cfg.taille));
pboxList[i].Width = Conteneur.Width / cfg.taille;
pboxList[i].Height = Conteneur.Height / cfg.taille;
pboxList[i].SizeMode = PictureBoxSizeMode.StretchImage;
if (GetX(i) == 0)
if (GetY(i) == 0)
pboxList[i].Image = global::go01.Properties.Resources.tl;
else if (GetY(i) == dim - 1)
else if (GetY(i) == cfg.taille - 1)
pboxList[i].Image = global::go01.Properties.Resources.bl;
else
pboxList[i].Image = global::go01.Properties.Resources.l;
else if (GetY(i) == 0)
if (GetX(i) == dim - 1)
if (GetX(i) == cfg.taille - 1)
pboxList[i].Image = global::go01.Properties.Resources.tr;
else
pboxList[i].Image = global::go01.Properties.Resources.t;
else if (GetY(i) == dim - 1)
if (GetX(i) == dim - 1)
else if (GetY(i) == cfg.taille - 1)
if (GetX(i) == cfg.taille - 1)
pboxList[i].Image = global::go01.Properties.Resources.br;
else
pboxList[i].Image = global::go01.Properties.Resources.b;
else if (GetX(i) == dim - 1)
else if (GetX(i) == cfg.taille - 1)
pboxList[i].Image = global::go01.Properties.Resources.r;
else
pboxList[i].Image = global::go01.Properties.Resources.m;
if (initTableauOccupation)
{
tableauOccupation[i % dim, i / dim] = Occupant_E.Vide;
tableauOccupation[i % cfg.taille, i / cfg.taille] = Occupant_E.Vide;
}
pboxList[i].Name = (i % dim).ToString() + ";" + (i / dim).ToString();
pboxList[i].Name = (i % cfg.taille).ToString() + ";" + (i / cfg.taille).ToString();
pboxList[i].Click += new System.EventHandler(this.pictureBox1_Click);
pboxList[i].Paint += new PaintEventHandler(this.PaintPb);
Conteneur.Controls.Add(pboxList[i]);

View File

@ -23,7 +23,7 @@ int dim; int nbPionAlign; string playerW; string playerB;
public Plateau(Goban.sauvegarde_S s)
{
InitializeComponent();
this.Text = $"Morpion {s.dimGoban}x{s.dimGoban}";
this.Text = $"Morpion {s.cfg.taille}x{s.cfg.taille}";
g = new Goban(this, pictureBox1, s);
}
public Plateau(int dim, int nbPionAlign, string playerW, string playerB)

View File

@ -16,12 +16,12 @@ namespace go01
{
public partial class RejoindrePartieReseau_client : Form
{
socketPlateauBase.ConfigGo_S cfg;
Goban.ConfigGo_S cfg;
Thread ecouteThread;
System.Threading.Timer timerTTLdtListPart;
private DataTable dtListPart;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
Plateau p;
/*public struct partie_S
{
public string uid, partName, joueurAdverseName, ip;
@ -61,7 +61,7 @@ namespace go01
dtListPart = new DataTable();
dtListPart.Columns.Add("uid", typeof(string));
dtListPart.Columns.Add("partName", typeof(socketPlateauBase.ConfigGo_S));
dtListPart.Columns.Add("partName", typeof(Goban.ConfigGo_S));
dtListPart.Columns.Add("playerName", typeof(string));
dtListPart.Columns.Add("ip", typeof(string));
dtListPart.Columns.Add("port", typeof(int));//timeStamp
@ -93,7 +93,7 @@ namespace go01
byte[] ClientRequestData = Server.Receive(ref ClientEp);
using (MemoryStream ms = new MemoryStream(ClientRequestData))
{
socketPlateauBase.ConfigGo_S cfgGo = (socketPlateauBase.ConfigGo_S)binaryFormatter.Deserialize(ms);
Goban.ConfigGo_S cfgGo = (Goban.ConfigGo_S)binaryFormatter.Deserialize(ms);
Invoke(new Action(() => { ajoutPartie(cfgGo, ClientEp.Address.ToString()); }));
}
@ -104,11 +104,11 @@ namespace go01
}
}
public void ajoutPartie(socketPlateauBase.ConfigGo_S cfgGo, string ip)
public void ajoutPartie(Goban.ConfigGo_S cfgGo, string ip)
{
if(dtListPart.Select($"uid = '{cfgGo.Uid}'").Length==0)
dtListPart.Rows.Add(cfgGo.Uid, cfgGo, cfgGo.NomJoeurServeur, cfgGo.IpServeur, cfgGo.port, DateTime.Now);
dtListPart.Rows.Add(cfgGo.Uid, cfgGo, cfgGo.NomJoeurBlanc==""? cfgGo.NomJoeurNoir: cfgGo.NomJoeurBlanc, cfgGo.IpServeur, cfgGo.port, DateTime.Now);
//lock (DgvPart) ;
dtListPart.Select($"uid = '{cfgGo.Uid}'")[0]["timeStamp"] = DateTime.Now;
DgvPart.DataSource = dtListPart;
@ -124,7 +124,6 @@ namespace go01
dgvPart.Rows.Remove(row);
dgvPart.Refresh();
}));
}
}
}
@ -149,7 +148,7 @@ namespace go01
{
if (dgvPart.SelectedRows.Count <= 0)
return;
cfg = (socketPlateauBase.ConfigGo_S)dgvPart.SelectedRows[0].Cells["partName"].Value;
cfg = (Goban.ConfigGo_S)dgvPart.SelectedRows[0].Cells["partName"].Value;
tbIpServ.Text = cfg.IpServeur.ToString();
tbPort.Text = cfg.port.ToString();
}
@ -158,8 +157,13 @@ namespace go01
{
if (dgvPart.SelectedRows.Count <= 0)
return;
cfg = (socketPlateauBase.ConfigGo_S)dgvPart.SelectedRows[0].Cells["partName"].Value;
cfg.NomJoeurClient = tbPlayername.Text;
cfg = (Goban.ConfigGo_S)dgvPart.SelectedRows[0].Cells["partName"].Value;
if(cfg.NomJoeurBlanc == "")
cfg.NomJoeurBlanc = tbPlayername.Text;
else
{
cfg.NomJoeurBlanc = tbPlayername.Text;
}
socketPlateauCLI sc = new socketPlateauCLI(cfg, null, new socketPlateauCLI.OnConnected(SocketCoonected));
/*sc.
sc.senCmd(new socketPlateauBase.CommandeSocket_S(socketPlateauBase.commande_E.Join, cfg));*/
@ -173,9 +177,11 @@ namespace go01
//################################################################################################
//################################################################################################
Console.WriteLine("CONNECTION ETABLEIE");
Plateau p = new Plateau(cfg.Taille, cfg.PionAligner, cfg.NomJoeurServeur, cfg.NomJoeurClient);
p = new Plateau(cfg.taille, cfg.PionAligner, cfg.NomJoeurBlanc, cfg.NomJoeurNoir);
p.Show();
//this.Hide();
p.ShowDialog();
// p.ShowDialog();
//this.Close();
}
}

View File

@ -84,8 +84,8 @@
<Compile Include="socketPlateauCLI.cs" />
<Compile Include="socketPlateauSRV.cs" />
<Compile Include="socketPlateauBase.cs" />
<Compile Include="socketPlateauInterface.cs" />
<Compile Include="socketPlateauEventArgs.cs" />
<Compile Include="socketPlateauBase_Interface.cs" />
<Compile Include="TextBoxStreamWriter.cs" />
<EmbeddedResource Include="CreerPartieReseau_serv.resx">
<DependentUpon>CreerPartieReseau_serv.cs</DependentUpon>

View File

@ -30,44 +30,6 @@ namespace go01
data = dt;
}
}
[Serializable]
public struct ConfigGo_S
{
private string uid;
public string Uid { get { return uid; } }
private string partName;
public string PartName { get { return partName; } }
public string NomJoeurClient;
private string nomJoeurServeur;
public string NomJoeurServeur { get { return nomJoeurServeur; } }
private int taille;
public int Taille { get { return taille; } }
private int pionaAligner;
public int PionAligner { get { return pionaAligner; } }
private IPAddress ipServeur;
public IPAddress IpServeur { get => ipServeur; }
public readonly int port;
public ConfigGo_S(string Uid, string PartName, string NomJoeurClient, string NomJoeurServeur, int Taille, int PionaAligner, IPAddress ipServeur, int port)
{
this.uid = Uid;
this.partName = PartName;
this.NomJoeurClient = NomJoeurClient;
this.nomJoeurServeur = NomJoeurServeur;
this.taille = Taille;
this.pionaAligner = PionaAligner;
this.ipServeur = ipServeur;
this.port = port;
}
public override string ToString()
{
return partName;
}
public static implicit operator string(ConfigGo_S part)
{
return part.ToString();
}
}
#endregion
#region variable
protected Socket socServ, socCli;
@ -95,13 +57,12 @@ namespace go01
protected static Boolean connexionEtablie = false;
protected Goban plateauDeJeu;
protected ConfigGo_S cfgGo;
protected Goban.ConfigGo_S cfgGo;
#endregion
public delegate void OnReceived(object myObject, socketPlateauServReception myArgs);
public event OnReceived onReceived;
public socketPlateauBase(TypeSocket_E socF, ConfigGo_S cfgGo, Goban g)
public socketPlateauBase(TypeSocket_E socF, Goban.ConfigGo_S cfgGo, Goban g)
{
plateauDeJeu = g;
adresseIpCourante = cfgGo.IpServeur;
@ -116,25 +77,10 @@ namespace go01
var netStream = new NetworkStream(sArg, true);
var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
CommandeSocket_S cmd = (CommandeSocket_S)binaryFormatter.Deserialize(netStream);
try { onReceived(this, new socketPlateauServReception(cmd)); } catch { }
switch (cmd.commande)
{
case commande_E.Join:
break;
case commande_E.Leave:
break;
case commande_E.Place:
break;
case commande_E.WhoTurn:
break;
case commande_E.Win:
break;
}
Received(cmd);
try { onReceived?.Invoke(this, new socketPlateauServReception(cmd)); } catch (Exception e) { Console.WriteLine(e); }
InitialiserReception(sArg);
}
protected abstract void Received(CommandeSocket_S cmd);
public void senCmd(CommandeSocket_S cmd)
public void senCmd(object cmd)
{
var netStream = new NetworkStream(socCli, true);

View File

@ -16,7 +16,7 @@ namespace go01
public delegate void OnJoinACK(object myObject, socketPlateauServACKArgs myArgs);
public event OnJoinACK onJoinACK;
public socketPlateauCLI(ConfigGo_S cfgGo, Goban g) : base(TypeSocket_E.Client, cfgGo, g)
public socketPlateauCLI(Goban.ConfigGo_S cfgGo, Goban g) : base(TypeSocket_E.Client, cfgGo, g)
{
try
{
@ -29,11 +29,11 @@ namespace go01
MessageBox.Show("Connexion impossible : " + ee.Message);
}
}
public socketPlateauCLI(ConfigGo_S cfgGo, Goban g, OnJoinACK onJoinACK) : this(cfgGo, g)
public socketPlateauCLI(Goban.ConfigGo_S cfgGo, Goban g, OnJoinACK onJoinACK) : this(cfgGo, g)
{
this.onJoinACK = onJoinACK;
}
public socketPlateauCLI(ConfigGo_S cfgGo, Goban g, OnConnected onConnected) : this(cfgGo, g)
public socketPlateauCLI(Goban.ConfigGo_S cfgGo, Goban g, OnConnected onConnected) : this(cfgGo, g)
{
this.onConnected = onConnected;
}
@ -43,17 +43,12 @@ namespace go01
Socket sTmp = (Socket)iAR.AsyncState;
if (sTmp.Connected) {
connexionEtablie = true;
try { onConnected(this, new socketPlateauConnected(cfgGo)); } catch { }
senCmd(new CommandeSocket_S(commande_E.Join, cfgGo));
try { onConnected?.Invoke(this, new socketPlateauConnected(cfgGo)); } catch (Exception e) { Console.WriteLine(e); }
InitialiserReception(sTmp);
}
else { MessageBox.Show("Serveur innacessible"); }
}
protected override void Received(CommandeSocket_S cmd)
{
throw new NotImplementedException();
}
}
}

View File

@ -8,8 +8,8 @@ namespace go01
{
public class socketPlateauServJoinArgs : EventArgs
{
public socketPlateauBase.ConfigGo_S ConfigGo;
public socketPlateauServJoinArgs(socketPlateauBase.ConfigGo_S cfg)
public Goban.ConfigGo_S ConfigGo;
public socketPlateauServJoinArgs(Goban.ConfigGo_S cfg)
{
this.ConfigGo = cfg;
}
@ -40,9 +40,9 @@ namespace go01
}
public class socketPlateauConnected : EventArgs
{
public socketPlateauBase.ConfigGo_S ConfigGo;
public Goban.ConfigGo_S ConfigGo;
public socketPlateauConnected(socketPlateauBase.ConfigGo_S cfg)
public socketPlateauConnected(Goban.ConfigGo_S cfg)
{
this.ConfigGo = cfg;
}

View File

@ -1,14 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace go01
{
public interface socketPlateauInterface
{
void InitialiserReception(Socket sArg);
}
}

View File

@ -27,20 +27,21 @@ namespace go01
public event OnDemandeCo onDemandeCo;
public delegate void OnConnected(object myObject, socketPlateauConnected myArgs);
public event OnConnected onConnected;
public event EventHandler onReceive;
#endregion
public socketPlateauSRV(ConfigGo_S cfgGo, Goban g) : base(TypeSocket_E.Serveur, cfgGo, g)
public socketPlateauSRV(Goban.ConfigGo_S cfgGo, Goban g) : base(TypeSocket_E.Serveur, cfgGo, g)
{
}
public socketPlateauSRV(ConfigGo_S cfgGo, Goban g, OnJoinACK onJoinACK) : this(cfgGo, g)
public socketPlateauSRV(Goban.ConfigGo_S cfgGo, Goban g, OnJoinACK onJoinACK) : this(cfgGo, g)
{
this.onJoinACK = onJoinACK;
}
public socketPlateauSRV(ConfigGo_S cfgGo, Goban g, OnConnected onConnected) : this(cfgGo, g)
public socketPlateauSRV(Goban.ConfigGo_S cfgGo, Goban g, OnConnected onConnected) : this(cfgGo, g)
{
this.onConnected = onConnected;
}
public socketPlateauSRV(ConfigGo_S cfgGo, Goban g, OnJoinServ onJoinServ) : this(cfgGo, g)
public socketPlateauSRV(Goban.ConfigGo_S cfgGo, Goban g, OnJoinServ onJoinServ) : this(cfgGo, g)
{
this.onJoinServ = onJoinServ;
}
@ -79,12 +80,9 @@ namespace go01
{
try
{
onDemandeCo(this, new socketPlateauServDemandeCo());
}
catch
{
onDemandeCo?.Invoke(this, new socketPlateauServDemandeCo());
}
catch (Exception e) { Console.WriteLine(e); }
if (socFlag == TypeSocket_E.Serveur && !connexionEtablie)
{
Socket sTmp = (Socket)iAR.AsyncState;
@ -94,7 +92,7 @@ namespace go01
Console.WriteLine($"Connexion effectuée par {((IPEndPoint)socCli.RemoteEndPoint).Address}");
#endif
connexionEtablie = true;
try { onConnected(this, new socketPlateauConnected(cfgGo)); } catch { }
try { onConnected?.Invoke(this, new socketPlateauConnected(cfgGo)); } catch (Exception e) { Console.WriteLine(e); }
timerBroadcast.Dispose();
InitialiserReception(socCli);
}
@ -106,23 +104,5 @@ namespace go01
socCli.Close();
}
}
protected override void Received(CommandeSocket_S cmd)
{
switch (cmd.commande)
{
case commande_E.Join:
try{ onJoinServ(this, new socketPlateauServJoinArgs((ConfigGo_S)cmd.data)); } catch { }
break;
case commande_E.Leave:
break;
case commande_E.Place:
break;
case commande_E.WhoTurn:
break;
case commande_E.Win:
break;
}
}
}
}