Merge branch 'master' of https://codefirst.iut.uca.fr/git/leap-hit-team/leap-hit-server
continuous-integration/drone/push Build is passing Details

ServerDeployement
Noan07 2 years ago
commit d6dbc05e98

@ -76,71 +76,50 @@ public class PongServer
private void Host(ObjectTransfert<Player> data, IPEndPoint remoteEndPoint, UdpClient serverSocket, bool availaible)
{
Room room = new Room(data.Data.playerId, availaible);
room.playerHost = data.Data;
room.nbPlayer++;
room.PropertyChanged += OnReadyChanged;
Console.WriteLine("New connection from " + remoteEndPoint.ToString());
// Assign a unique port to the client
IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, nextPort);
UdpClient clientSocket = new UdpClient(clientEndPoint);
room.playerHost = new KeyValuePair<Player,UdpClient>(data.Data,clientSocket);
room.nbPlayer++;
room.PropertyChanged += room.OnReadyChanged;
Console.WriteLine("New connection Host From " + remoteEndPoint.ToString());
room.Port = nextPort;
nextPort++;
UdpClient clientSocket = new UdpClient(clientEndPoint);
clients[remoteEndPoint] = clientSocket;
// Send connection message to client
byte[] connectionData = Encoding.ASCII.GetBytes(room.Id);
serverSocket.Send(connectionData, connectionData.Length, remoteEndPoint);
// Start thread to receive data from client
Thread receiveThread = new Thread(() => room.ReceiveMessages(clientSocket, data.Data));
receiveThread.Start();
}
private void Join(ObjectTransfert<Player> data, IPEndPoint remoteEndPoint, UdpClient serverSocket, Room room)
{
Console.WriteLine("New connection from " + remoteEndPoint.ToString());
// Assign a unique port to the client
IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, nextPort++);
IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, nextPort);
UdpClient clientSocket = new UdpClient(clientEndPoint);
clients[remoteEndPoint] = clientSocket;
// Send connection message to client
string connectionMessage = clientEndPoint.Port.ToString();
byte[] connectionData = Encoding.ASCII.GetBytes(connectionMessage);
serverSocket.Send(connectionData, connectionData.Length, remoteEndPoint);
// Start thread to receive data from client
Thread receiveThread = new Thread(() => room.ReceiveMessages(clientSocket, data.Data));
receiveThread.Start();
}
room.playerJoin = new KeyValuePair<Player, UdpClient>(data.Data, clientSocket);
room.nbPlayer++;
private void OnReadyChanged(object sender, PropertyChangedEventArgs e)
{
Room nbPlayer = sender as Room;
bool maxPlayer = nbPlayer.maxPlayer;
room.PropertyChanged += room.OnReadyChanged;
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Any, listenPort);
UdpClient serverSocket = new UdpClient(serverEndPoint);
Console.WriteLine("New connection Client from " + remoteEndPoint.ToString());
if (maxPlayer)
{
while (true)
{
//Faut finir ça mnt
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
byte[] receivedData = serverSocket.Receive(ref remoteEndPoint);
room.Port = nextPort;
nextPort++;
}
}
}
}

@ -26,8 +26,8 @@ namespace Server
public string Id { get; set; }
public Player playerHost;
public Player playerJoin;
public KeyValuePair <Player, UdpClient> playerHost;
public KeyValuePair <Player, UdpClient> playerJoin;
public int Port { get; set; }
@ -54,25 +54,49 @@ namespace Server
public void ReceiveMessages(UdpClient clientSocket,Player player)
public void ReceiveMessages(UdpClient clientSocket1, UdpClient clientSocket2)
{
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
while (true)
{
byte[] receivedData = clientSocket.Receive(ref remoteEndPoint);
byte[] receivedData = clientSocket1.Receive(ref remoteEndPoint);
string receivedMessage = Encoding.ASCII.GetString(receivedData);
Console.WriteLine("Received from " + remoteEndPoint.ToString() + ": " + receivedMessage);
while (true) //score
{
//cordinate paddel
receivedData = clientSocket.Receive(ref remoteEndPoint);
receivedMessage = Encoding.ASCII.GetString(receivedData);
}
clientSocket2.Send(receivedData, receivedData.Length, remoteEndPoint);
}
}
public void OnReadyChanged(object sender, PropertyChangedEventArgs e)
{
Room nbPlayer = sender as Room;
bool maxPlayer = nbPlayer.maxPlayer;
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Any, Port);
UdpClient serverSocket = new UdpClient(serverEndPoint);
if (maxPlayer)
{
Thread receiveThread1 = new Thread(() => ReceiveMessages(playerHost.Value, playerJoin.Value));
Thread receiveThread2 = new Thread(() => ReceiveMessages(playerJoin.Value, playerHost.Value));
receiveThread1.Start();
receiveThread2.Start();
receiveThread1.Join();
receiveThread2.Join();
}
}
}

Loading…
Cancel
Save