From 7fa47ae47c878d81e24275c2db992a7f6099075e Mon Sep 17 00:00:00 2001 From: Bruno Da Costa Cunha Date: Tue, 28 Mar 2023 11:11:35 +0200 Subject: [PATCH] Semaphores teste --- code/server/Server/Room.cs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/code/server/Server/Room.cs b/code/server/Server/Room.cs index bf62b4d..b33f8b4 100644 --- a/code/server/Server/Room.cs +++ b/code/server/Server/Room.cs @@ -57,15 +57,14 @@ namespace Server - public void ReceiveMessages(UdpClient clientSocket1, UdpClient clientSocket2, IPEndPoint endpoint2, SemaphoreSlim semaphore) + public void ReceiveMessages(UdpClient clientSocket1, UdpClient clientSocket2, IPEndPoint endpoint2, Semaphore semaphore) { IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); while (true) { byte[] receivedData = clientSocket1.Receive(ref remoteEndPoint); - - semaphore.Wait(); + semaphore.WaitOne(); clientSocket2.Send(receivedData, receivedData.Length, endpoint2); @@ -97,21 +96,18 @@ namespace Server playerJoin.Value.Send(receivedDataHost, receivedDataHost.Length, remoteEndPointHost); playerHost.Value.Send(receivedDataJoin, receivedDataJoin.Length, remoteEndPointJoin); - SemaphoreSlim semaphore = new SemaphoreSlim(0); + Semaphore semaphore = new Semaphore(2,2); Thread receiveThread1 = new Thread(() => ReceiveMessages(playerHost.Value, playerJoin.Value, remoteEndPointJoin, semaphore)); Thread receiveThread2 = new Thread(() => { - // Attente pour que le joueur 1 ait envoyé ses données avant de démarrer la réception des données du joueur 2 - semaphore.Wait(); ReceiveMessages(playerJoin.Value, playerHost.Value, remoteEndPointHost, semaphore); }); receiveThread1.Start(); receiveThread2.Start(); - semaphore.Release(); receiveThread1.Join(); receiveThread2.Join();