Compare commits

..

No commits in common. 'f1e9c4da94b31e03fdaab85233ee69a1f12d893e' and 'f6b0c4dfcd714983a4d467ab275986e7ceb83b76' have entirely different histories.

@ -13,8 +13,7 @@ class Program
static void StartClient()
{
//IPEndPoint serverEndPoint = new IPEndPoint(Dns.GetHostAddresses("hulivet.fr").FirstOrDefault(), 3131);
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3131);
IPEndPoint serverEndPoint = new IPEndPoint(Dns.GetHostAddresses("hulivet.fr").FirstOrDefault(), 3131);
UdpClient client = new UdpClient();
// Send connection message to server
@ -32,7 +31,7 @@ class Program
string message = "";
while (message != "exit")
{
serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), int.Parse(receivedPort));
serverEndPoint = new IPEndPoint(Dns.GetHostAddresses("hulivet.fr").FirstOrDefault(), int.Parse(receivedPort));
Console.Write("Enter message to send (or 'exit' to quit): ");
message = Console.ReadLine();

@ -8,6 +8,7 @@ namespace DataBase.Entity
public string playerId { get; set; }
public string name { get; set; }
public int nbBallTouchTotal { get; set; }
public bool ready { get; set; } = false;
public int timePlayed { get; set; }
}
}

@ -8,7 +8,6 @@ using DataBase.Entity;
using Shared.DTO;
using System.Text.Json;
using Server;
using System.ComponentModel;
public class PongServer
{
@ -39,48 +38,11 @@ public class PongServer
string fileJson = Encoding.UTF8.GetString(receivedData);
ObjectTransfert<Player> data = JsonSerializer.Deserialize<ObjectTransfert<Player>>(fileJson);
if (data.Informations.Action == Shared.DTO.Action.Host)
if (data.Informations.Action == Shared.DTO.Action.Create)
{
Host(data, remoteEndPoint, serverSocket, false);
}
if (data.Informations.Action == Shared.DTO.Action.Join)
{
var choisenRoom = rooms.FirstOrDefault(room => room.Key == data.Informations.IdRoom);
if(choisenRoom.Value != default && choisenRoom.Value.Availaible)
{
Join(data, remoteEndPoint, serverSocket, choisenRoom.Value);
}
}
if (data.Informations.Action == Shared.DTO.Action.Connect) // Join = rejoindre un room , et Host ça va juste créer un room
{
var choisenRoom = rooms.FirstOrDefault(room => room.Value.Availaible);
if (choisenRoom.Value != default )
{
Join(data, remoteEndPoint, serverSocket, choisenRoom.Value);
}
else
{
Host(data, remoteEndPoint, serverSocket, true);
}
}
}
}
private void Host(ObjectTransfert<Player> data, IPEndPoint remoteEndPoint, UdpClient serverSocket, bool availaible)
{
Room room = new Room(data.Data.playerId, availaible);
Room room = new Room(data.Data.playerId);
room.playerHost = data.Data;
room.nbPlayer++;
room.PropertyChanged += OnReadyChanged;
Console.WriteLine("New connection from " + remoteEndPoint.ToString());
// Assign a unique port to the client
@ -95,13 +57,13 @@ public class PongServer
serverSocket.Send(connectionData, connectionData.Length, remoteEndPoint);
// Start thread to receive data from client
Thread receiveThread = new Thread(() => room.ReceiveMessages(clientSocket, data.Data));
Thread receiveThread = new Thread(() => Room.ReceiveMessages(clientSocket, data.Data));
receiveThread.Start();
}
private void Join(ObjectTransfert<Player> data, IPEndPoint remoteEndPoint, UdpClient serverSocket, Room room)
if (data.Informations.Action == Shared.DTO.Action.Join)
{
Console.WriteLine("New connection from " + remoteEndPoint.ToString());
// Assign a unique port to the client
@ -115,31 +77,17 @@ public class PongServer
serverSocket.Send(connectionData, connectionData.Length, remoteEndPoint);
// Start thread to receive data from client
Thread receiveThread = new Thread(() => room.ReceiveMessages(clientSocket, data.Data));
Thread receiveThread = new Thread(() => ReceiveMessages(clientSocket));
receiveThread.Start();
}
private void OnReadyChanged(object sender, PropertyChangedEventArgs e)
{
Room nbPlayer = sender as Room;
bool maxPlayer = nbPlayer.maxPlayer;
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Any, listenPort);
UdpClient serverSocket = new UdpClient(serverEndPoint);
}
if (maxPlayer)
{
while (true)
if (room.MaxPlayers.Count == 2)
{
//Faut finir ça mnt
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
byte[] receivedData = serverSocket.Receive(ref remoteEndPoint);
Console.WriteLine("Starting game...");
// Call a function to start the game
}
}
}

@ -7,54 +7,28 @@ using System.Net;
using System.Text;
using System.Threading.Tasks;
using Shared.DTO;
using System.ComponentModel;
namespace Server
{
public class Room : INotifyPropertyChanged
public class Room
{
public Room(string id, bool availaible)
public Room(string id)
{
Id = id;
Availaible = availaible;
}
public bool Availaible { get; set; }
public event PropertyChangedEventHandler? PropertyChanged;
public string Id { get; set; }
public Player playerHost;
public Player playerJoin;
public int Port { get; set; }
public int nbPlayer = 0;
public bool maxPlayer
{
get { return nbPlayer >= 2; }
set
{
if (nbPlayer >= 2)
{
maxPlayer = true;
NotifyPropertyChanged("Ready");
}
}
}
protected void NotifyPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public int Port { get; set; }
public void ReceiveMessages(UdpClient clientSocket,Player player)
public static void ReceiveMessages(UdpClient clientSocket,Player player)
{
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
@ -63,7 +37,10 @@ namespace Server
byte[] receivedData = clientSocket.Receive(ref remoteEndPoint);
string receivedMessage = Encoding.ASCII.GetString(receivedData);
Console.WriteLine("Received from " + remoteEndPoint.ToString() + ": " + receivedMessage);
if (receivedMessage.ToUpper().Equals("READY"))
{
player.ready = true;
}
while (true) //score
{
//cordinate paddel

@ -8,7 +8,7 @@ namespace Shared.DTO
{
public enum Action
{
Host,
Create,
Connect,
Join,
End

@ -9,6 +9,5 @@ namespace Shared.DTO
public class Informations
{
public Action Action { get; set; }
public string? IdRoom { get; set; }
}
}

Loading…
Cancel
Save