From ac074ed3d92ddc068f3ca1ed43fcc8d65a2855f0 Mon Sep 17 00:00:00 2001 From: Bruno Da Costa Cunha Date: Fri, 3 Mar 2023 11:51:01 +0100 Subject: [PATCH 1/9] =?UTF-8?q?:hammer:=20Des=20que=20le=20serveur=20re?= =?UTF-8?q?=C3=A7oi=20deux=20donn=C3=A9es=20=C3=A7a=20doit=20lancer=20le?= =?UTF-8?q?=20match.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/server/Server/Program.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/code/server/Server/Program.cs b/code/server/Server/Program.cs index d7eab11..e77fe4a 100644 --- a/code/server/Server/Program.cs +++ b/code/server/Server/Program.cs @@ -5,6 +5,8 @@ using System.Net.Sockets; class Program { + + static int playerCount = 0; static void Main(string[] args) { Console.WriteLine("Welcome to LeapHit Multiplayer - Server"); @@ -18,12 +20,22 @@ class Program Console.WriteLine("Server started, waiting for clients to connect..."); Console.WriteLine(endPoint.Address.ToString()); - while (true) + while (playerCount < 2) { IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, 0); byte[] data = server.Receive(ref clientEndPoint); string dataReceived = System.Text.Encoding.ASCII.GetString(data); Console.WriteLine("Data received from client: " + dataReceived + " from " + clientEndPoint.ToString()); + + playerCount++; + + if (playerCount == 2) + { + Console.WriteLine("Deux joueurs connectés, le jeu va commencer..."); + // On va mettre le code du pour demarrer le match ici + } + } + server.Close(); } -} +} \ No newline at end of file -- 2.36.3 From a20b02dc332ae680fdbe493725411dda26815905 Mon Sep 17 00:00:00 2001 From: Bruno Da Costa Cunha Date: Tue, 7 Mar 2023 10:47:03 +0100 Subject: [PATCH 2/9] Gestion du nombre de clients permits dans le server --- code/server/Server/Program.cs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/code/server/Server/Program.cs b/code/server/Server/Program.cs index e77fe4a..d12d847 100644 --- a/code/server/Server/Program.cs +++ b/code/server/Server/Program.cs @@ -1,12 +1,14 @@ using System; using System.Net; using System.Net.Sockets; +using System.Collections.Generic; class Program { static int playerCount = 0; + static List clientAddresses = new List(); // Liste des adresses IP des clients connectés static void Main(string[] args) { Console.WriteLine("Welcome to LeapHit Multiplayer - Server"); @@ -26,13 +28,21 @@ class Program byte[] data = server.Receive(ref clientEndPoint); string dataReceived = System.Text.Encoding.ASCII.GetString(data); Console.WriteLine("Data received from client: " + dataReceived + " from " + clientEndPoint.ToString()); - - playerCount++; - if (playerCount == 2) + if (!clientAddresses.Contains(clientEndPoint)) // Vérification si l'adresse IP est déjà présente dans la liste { - Console.WriteLine("Deux joueurs connectés, le jeu va commencer..."); - // On va mettre le code du pour demarrer le match ici + clientAddresses.Add(clientEndPoint); // Ajout de l'adresse IP à la liste + playerCount++; + + if (playerCount == 2) + { + Console.WriteLine("Deux joueurs connectés, le jeu va commencer..."); + // On va mettre le code du pour demarrer le match ici + } + } + else + { + Console.WriteLine("Client with IP " + clientEndPoint.Address.ToString() + " has already sent a message and will not be counted."); } } -- 2.36.3 From 18cad2aac0d8cb900cf236dd76764ff5ae197fc7 Mon Sep 17 00:00:00 2001 From: Hugo LIVET Date: Tue, 7 Mar 2023 10:32:44 +0000 Subject: [PATCH 3/9] add start.sh for run on server --- .gitignore | 4 +++- code/server/Server/Program.cs | 7 +++++-- code/server/Server/start.sh | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100755 code/server/Server/start.sh diff --git a/.gitignore b/.gitignore index 8dd4607..aa3cf19 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ *.userosscache *.sln.docstates +Server.exe + # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs @@ -395,4 +397,4 @@ FodyWeavers.xsd *.msp # JetBrains Rider -*.sln.iml \ No newline at end of file +*.sln.iml diff --git a/code/server/Server/Program.cs b/code/server/Server/Program.cs index d12d847..7fde9b2 100644 --- a/code/server/Server/Program.cs +++ b/code/server/Server/Program.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net; using System.Net.Sockets; using System.Collections.Generic; @@ -48,4 +48,7 @@ class Program } server.Close(); } -} \ No newline at end of file +} + + + diff --git a/code/server/Server/start.sh b/code/server/Server/start.sh new file mode 100755 index 0000000..953bfe1 --- /dev/null +++ b/code/server/Server/start.sh @@ -0,0 +1,4 @@ +#! /bin/bash + +mcs -out:Server.exe Program.cs +screen -d -m -S leapServer mono Server.exe -- 2.36.3 From 4c7ff23ca954520d595c5dc57872aa7b000748b0 Mon Sep 17 00:00:00 2001 From: Hugo LIVET Date: Tue, 7 Mar 2023 20:38:59 +0100 Subject: [PATCH 4/9] add clientconsole (ceated by Bruno) --- .../server/ClientConsole/ClientConsole.csproj | 10 +++++++ code/server/ClientConsole/Program.cs | 29 +++++++++++++++++++ code/server/Server.sln | 8 ++++- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 code/server/ClientConsole/ClientConsole.csproj create mode 100644 code/server/ClientConsole/Program.cs diff --git a/code/server/ClientConsole/ClientConsole.csproj b/code/server/ClientConsole/ClientConsole.csproj new file mode 100644 index 0000000..74abf5c --- /dev/null +++ b/code/server/ClientConsole/ClientConsole.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/code/server/ClientConsole/Program.cs b/code/server/ClientConsole/Program.cs new file mode 100644 index 0000000..a34062a --- /dev/null +++ b/code/server/ClientConsole/Program.cs @@ -0,0 +1,29 @@ +using System; +using System.Net; +using System.Net.Sockets; + + +class Program +{ + static void Main(string[] args) + { + Console.WriteLine("Welcome to Pong Multiplayer - Client"); + StartClient(); + } + + static void StartClient() + { + //IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("82.165.19.245"), 3131); + IPEndPoint endPoint = new IPEndPoint(Dns.GetHostAddresses("leaphit.hulivet.fr").FirstOrDefault(), 3131); + UdpClient client = new UdpClient(); + Console.WriteLine("Client connected to server: " + endPoint.ToString()); + + while (true) + { + Console.WriteLine("Enter data to send to server:"); + string data = Console.ReadLine(); + byte[] dataToSend = System.Text.Encoding.ASCII.GetBytes(data); + client.Send(dataToSend, dataToSend.Length, endPoint); + } + } +} diff --git a/code/server/Server.sln b/code/server/Server.sln index 164c901..d97c22f 100644 --- a/code/server/Server.sln +++ b/code/server/Server.sln @@ -11,10 +11,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DTO", "DTO\DTO.csproj", "{B EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataBase", "DataBase\DataBase.csproj", "{FCCE7DEC-1F7B-4C66-8C61-3FCB668F9008}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestControleurs", "TestControleurs\TestControleurs.csproj", "{A9DFF203-7F27-44BA-A460-F65C01D0EDFD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestControleurs", "TestControleurs\TestControleurs.csproj", "{A9DFF203-7F27-44BA-A460-F65C01D0EDFD}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{12A97D16-34BB-4D4F-9F76-D74061A9BA77}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClientConsole", "ClientConsole\ClientConsole.csproj", "{33F7C629-F92B-459C-BCC5-6A4601D6D9EA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -41,6 +43,10 @@ Global {A9DFF203-7F27-44BA-A460-F65C01D0EDFD}.Debug|Any CPU.Build.0 = Debug|Any CPU {A9DFF203-7F27-44BA-A460-F65C01D0EDFD}.Release|Any CPU.ActiveCfg = Release|Any CPU {A9DFF203-7F27-44BA-A460-F65C01D0EDFD}.Release|Any CPU.Build.0 = Release|Any CPU + {33F7C629-F92B-459C-BCC5-6A4601D6D9EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33F7C629-F92B-459C-BCC5-6A4601D6D9EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33F7C629-F92B-459C-BCC5-6A4601D6D9EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33F7C629-F92B-459C-BCC5-6A4601D6D9EA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- 2.36.3 From e59867d7f567fa41561603df92f71f5b2cf455be Mon Sep 17 00:00:00 2001 From: Hugo LIVET Date: Fri, 10 Mar 2023 11:08:34 +0100 Subject: [PATCH 5/9] Maj port --- code/server/ClientConsole/Program.cs | 5 ++- code/server/Server/Program.cs | 67 +++++++++++++++++++--------- 2 files changed, 50 insertions(+), 22 deletions(-) diff --git a/code/server/ClientConsole/Program.cs b/code/server/ClientConsole/Program.cs index a34062a..37f870c 100644 --- a/code/server/ClientConsole/Program.cs +++ b/code/server/ClientConsole/Program.cs @@ -3,6 +3,7 @@ using System.Net; using System.Net.Sockets; + class Program { static void Main(string[] args) @@ -13,8 +14,10 @@ class Program static void StartClient() { + IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3131); + //IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("82.165.19.245"), 3131); - IPEndPoint endPoint = new IPEndPoint(Dns.GetHostAddresses("leaphit.hulivet.fr").FirstOrDefault(), 3131); + //IPEndPoint endPoint = new IPEndPoint(Dns.GetHostAddresses("leaphit.hulivet.fr").FirstOrDefault(), 3131); UdpClient client = new UdpClient(); Console.WriteLine("Client connected to server: " + endPoint.ToString()); diff --git a/code/server/Server/Program.cs b/code/server/Server/Program.cs index 7fde9b2..1b256e1 100644 --- a/code/server/Server/Program.cs +++ b/code/server/Server/Program.cs @@ -2,13 +2,12 @@ using System; using System.Net; using System.Net.Sockets; using System.Collections.Generic; - +using System.Threading; class Program { + static Dictionary clients = new Dictionary(); - static int playerCount = 0; - static List clientAddresses = new List(); // Liste des adresses IP des clients connectés static void Main(string[] args) { Console.WriteLine("Welcome to LeapHit Multiplayer - Server"); @@ -19,36 +18,62 @@ class Program { IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 3131); UdpClient server = new UdpClient(endPoint); + Thread receiveThread = new Thread(ServerReceiveMessages); + receiveThread.Start(server); Console.WriteLine("Server started, waiting for clients to connect..."); Console.WriteLine(endPoint.Address.ToString()); - while (playerCount < 2) + // Stop Server + Console.WriteLine("Press Enter to exit."); + Console.ReadLine(); + receiveThread.Abort(); + foreach (UdpClient clientSocket in clients.Values) + { + clientSocket.Close(); + } + server.Close(); + } + + static void ServerReceiveMessages(object obj) + { + UdpClient serverSocket = (UdpClient)obj; + + while (true) { - IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, 0); - byte[] data = server.Receive(ref clientEndPoint); - string dataReceived = System.Text.Encoding.ASCII.GetString(data); - Console.WriteLine("Data received from client: " + dataReceived + " from " + clientEndPoint.ToString()); + IPEndPoint remoteEndpoint = new IPEndPoint(IPAddress.Any, 0); + byte[] data = serverSocket.Receive(ref remoteEndpoint); - if (!clientAddresses.Contains(clientEndPoint)) // Vérification si l'adresse IP est déjà présente dans la liste + if (!clients.ContainsKey(remoteEndpoint)) { - clientAddresses.Add(clientEndPoint); // Ajout de l'adresse IP à la liste - playerCount++; - - if (playerCount == 2) - { - Console.WriteLine("Deux joueurs connectés, le jeu va commencer..."); - // On va mettre le code du pour demarrer le match ici - } + clients[remoteEndpoint] = new UdpClient(); + clients[remoteEndpoint].Client.Bind(new IPEndPoint(IPAddress.Any, 31323)); } - else + + string connectionMessage = "Connection established."; + byte[] connectionData = System.Text.Encoding.ASCII.GetBytes(connectionMessage); + clients[remoteEndpoint].Send(connectionData, connectionData.Length, remoteEndpoint.Address.ToString(), remoteEndpoint.Port); + + // Receive data on the connection socket + while (true) { - Console.WriteLine("Client with IP " + clientEndPoint.Address.ToString() + " has already sent a message and will not be counted."); + byte[] receivedData = clients[remoteEndpoint].Receive(ref remoteEndpoint); + string receivedMessage = System.Text.Encoding.ASCII.GetString(receivedData); + Console.WriteLine("Received from " + remoteEndpoint + ": " + receivedMessage); } - } - server.Close(); } + + + + + + + + + + } + -- 2.36.3 From a2c6a111c0aa9f63eb15b9808be505aa8565ea6a Mon Sep 17 00:00:00 2001 From: Bruno Da Costa Cunha Date: Fri, 10 Mar 2023 11:51:01 +0100 Subject: [PATCH 6/9] =?UTF-8?q?Server=20modifi=C3=A9=20+=20Client=20modifi?= =?UTF-8?q?e:=20Le=20server=20arrive=20a=20donner=20un=20port=20unique=20?= =?UTF-8?q?=C3=A0=20chaque=20client,=20mais=20n'arrive=20plus=20=C3=A0=20r?= =?UTF-8?q?ecevoir=20des=20donn=C3=A9es.=20=C3=A0=20voir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/server/ClientConsole/Program.cs | 39 ++++++++----- code/server/Server/Program.cs | 83 ++++++++++++---------------- 2 files changed, 59 insertions(+), 63 deletions(-) diff --git a/code/server/ClientConsole/Program.cs b/code/server/ClientConsole/Program.cs index 37f870c..5e6affe 100644 --- a/code/server/ClientConsole/Program.cs +++ b/code/server/ClientConsole/Program.cs @@ -1,32 +1,43 @@ using System; using System.Net; using System.Net.Sockets; - - +using System.Text; class Program { static void Main(string[] args) { - Console.WriteLine("Welcome to Pong Multiplayer - Client"); + Console.WriteLine("Welcome to LeapHit Multiplayer - Client"); StartClient(); } static void StartClient() { - IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3131); - - //IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("82.165.19.245"), 3131); - //IPEndPoint endPoint = new IPEndPoint(Dns.GetHostAddresses("leaphit.hulivet.fr").FirstOrDefault(), 3131); + IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3131); UdpClient client = new UdpClient(); - Console.WriteLine("Client connected to server: " + endPoint.ToString()); - while (true) + // Send connection message to server + string connectionMessage = "Connect"; + byte[] connectionData = Encoding.ASCII.GetBytes(connectionMessage); + client.Send(connectionData, connectionData.Length, serverEndPoint); + + // Receive connection message from server + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + byte[] receivedData = client.Receive(ref remoteEndPoint); + string receivedMessage = Encoding.ASCII.GetString(receivedData); + Console.WriteLine("Received message: " + receivedMessage); + + // Send data to server + string message = ""; + while (message != "exit") { - Console.WriteLine("Enter data to send to server:"); - string data = Console.ReadLine(); - byte[] dataToSend = System.Text.Encoding.ASCII.GetBytes(data); - client.Send(dataToSend, dataToSend.Length, endPoint); + Console.Write("Enter message to send (or 'exit' to quit): "); + message = Console.ReadLine(); + byte[] data = Encoding.ASCII.GetBytes(message); + client.Send(data, data.Length, serverEndPoint); } + + // Close client + client.Close(); } -} +} \ No newline at end of file diff --git a/code/server/Server/Program.cs b/code/server/Server/Program.cs index 1b256e1..f3497ea 100644 --- a/code/server/Server/Program.cs +++ b/code/server/Server/Program.cs @@ -1,12 +1,14 @@ using System; +using System.Collections.Generic; using System.Net; using System.Net.Sockets; -using System.Collections.Generic; +using System.Text; using System.Threading; class Program { static Dictionary clients = new Dictionary(); + static int nextPort = 3132; static void Main(string[] args) { @@ -16,64 +18,47 @@ class Program static void StartServer() { - IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 3131); - UdpClient server = new UdpClient(endPoint); - Thread receiveThread = new Thread(ServerReceiveMessages); - receiveThread.Start(server); + IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Any, 3131); + UdpClient serverSocket = new UdpClient(serverEndPoint); Console.WriteLine("Server started, waiting for clients to connect..."); - Console.WriteLine(endPoint.Address.ToString()); - - // Stop Server - Console.WriteLine("Press Enter to exit."); - Console.ReadLine(); - receiveThread.Abort(); - foreach (UdpClient clientSocket in clients.Values) - { - clientSocket.Close(); - } - server.Close(); - } - - static void ServerReceiveMessages(object obj) - { - UdpClient serverSocket = (UdpClient)obj; while (true) { - IPEndPoint remoteEndpoint = new IPEndPoint(IPAddress.Any, 0); - byte[] data = serverSocket.Receive(ref remoteEndpoint); + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + byte[] receivedData = serverSocket.Receive(ref remoteEndPoint); + string message = Encoding.ASCII.GetString(receivedData); - if (!clients.ContainsKey(remoteEndpoint)) + if (message == "Connect") { - clients[remoteEndpoint] = new UdpClient(); - clients[remoteEndpoint].Client.Bind(new IPEndPoint(IPAddress.Any, 31323)); - } + Console.WriteLine("New connection from " + remoteEndPoint.ToString()); - string connectionMessage = "Connection established."; - byte[] connectionData = System.Text.Encoding.ASCII.GetBytes(connectionMessage); - clients[remoteEndpoint].Send(connectionData, connectionData.Length, remoteEndpoint.Address.ToString(), remoteEndpoint.Port); + // Assign a unique port to the client + IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, nextPort++); ; + UdpClient clientSocket = new UdpClient(clientEndPoint); + clients[remoteEndPoint] = clientSocket; - // Receive data on the connection socket - while (true) - { - byte[] receivedData = clients[remoteEndpoint].Receive(ref remoteEndpoint); - string receivedMessage = System.Text.Encoding.ASCII.GetString(receivedData); - Console.WriteLine("Received from " + remoteEndpoint + ": " + receivedMessage); + // Send connection message to client + string connectionMessage = "Connection established on port " + 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(ReceiveMessages); + receiveThread.Start(clientSocket); } } } + static void ReceiveMessages(object obj) + { + UdpClient clientSocket = (UdpClient)obj; + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - - - - - - - - -} - - - - + while (true) + { + byte[] receivedData = clientSocket.Receive(ref remoteEndPoint); + string receivedMessage = Encoding.ASCII.GetString(receivedData); + Console.WriteLine("Received from " + remoteEndPoint.ToString() + ": " + receivedMessage); + } + } +} \ No newline at end of file -- 2.36.3 From 63eeeff7e7adebe6d8758588fc7287c7d138c859 Mon Sep 17 00:00:00 2001 From: Bruno Da Costa Cunha Date: Mon, 13 Mar 2023 10:28:24 +0100 Subject: [PATCH 7/9] test --- code/server/ClientConsole/Program.cs | 2 +- code/server/Server/Program.cs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/server/ClientConsole/Program.cs b/code/server/ClientConsole/Program.cs index 5e6affe..0ab3c95 100644 --- a/code/server/ClientConsole/Program.cs +++ b/code/server/ClientConsole/Program.cs @@ -13,7 +13,7 @@ class Program static void StartClient() { - IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3131); + IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("82.165.19.245"), 3131); UdpClient client = new UdpClient(); // Send connection message to server diff --git a/code/server/Server/Program.cs b/code/server/Server/Program.cs index f3497ea..3c391f8 100644 --- a/code/server/Server/Program.cs +++ b/code/server/Server/Program.cs @@ -35,6 +35,7 @@ class Program // Assign a unique port to the client IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, nextPort++); ; UdpClient clientSocket = new UdpClient(clientEndPoint); + clientSocket.Client.Bind(clientEndPoint); clients[remoteEndPoint] = clientSocket; // Send connection message to client -- 2.36.3 From f95ed4d31fe7acc1c778c673a9212525c092f970 Mon Sep 17 00:00:00 2001 From: Bruno Da Costa Cunha Date: Mon, 13 Mar 2023 11:41:18 +0100 Subject: [PATCH 8/9] =?UTF-8?q?Essay=20de=20faire=20recevoir=20des=20donn?= =?UTF-8?q?=C3=A9es=20du=20client?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/server/ClientConsole/Program.cs | 2 +- code/server/Server/Program.cs | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/server/ClientConsole/Program.cs b/code/server/ClientConsole/Program.cs index 0ab3c95..5e6affe 100644 --- a/code/server/ClientConsole/Program.cs +++ b/code/server/ClientConsole/Program.cs @@ -13,7 +13,7 @@ class Program static void StartClient() { - IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("82.165.19.245"), 3131); + IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3131); UdpClient client = new UdpClient(); // Send connection message to server diff --git a/code/server/Server/Program.cs b/code/server/Server/Program.cs index 3c391f8..4bf003b 100644 --- a/code/server/Server/Program.cs +++ b/code/server/Server/Program.cs @@ -35,7 +35,6 @@ class Program // Assign a unique port to the client IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, nextPort++); ; UdpClient clientSocket = new UdpClient(clientEndPoint); - clientSocket.Client.Bind(clientEndPoint); clients[remoteEndPoint] = clientSocket; // Send connection message to client @@ -46,6 +45,7 @@ class Program // Start thread to receive data from client Thread receiveThread = new Thread(ReceiveMessages); receiveThread.Start(clientSocket); + } } } @@ -58,8 +58,12 @@ class Program while (true) { byte[] receivedData = clientSocket.Receive(ref remoteEndPoint); + Console.WriteLine("PORRA"); string receivedMessage = Encoding.ASCII.GetString(receivedData); + Console.WriteLine("PORRA2"); Console.WriteLine("Received from " + remoteEndPoint.ToString() + ": " + receivedMessage); + Console.WriteLine("PORRA3"); + } } } \ No newline at end of file -- 2.36.3 From 3da35e99cfc4b1735c8bdbb4e22c6df2be1f4d6f Mon Sep 17 00:00:00 2001 From: Bruno Da Costa Cunha Date: Tue, 14 Mar 2023 10:57:29 +0100 Subject: [PATCH 9/9] =?UTF-8?q?::bug::=20Serveur=20arrive=20=C3=A0=20recev?= =?UTF-8?q?oir=20les=20donn=C3=A9es=20du=20client.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/server/ClientConsole/Program.cs | 6 ++++-- code/server/Server/Program.cs | 12 ++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/code/server/ClientConsole/Program.cs b/code/server/ClientConsole/Program.cs index 5e6affe..dc744ca 100644 --- a/code/server/ClientConsole/Program.cs +++ b/code/server/ClientConsole/Program.cs @@ -24,13 +24,15 @@ class Program // Receive connection message from server IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); byte[] receivedData = client.Receive(ref remoteEndPoint); - string receivedMessage = Encoding.ASCII.GetString(receivedData); - Console.WriteLine("Received message: " + receivedMessage); + string receivedPort = Encoding.ASCII.GetString(receivedData); + Console.WriteLine("Received port: " + receivedPort); // Send data to server string message = ""; while (message != "exit") { + serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), int.Parse(receivedPort)); + Console.Write("Enter message to send (or 'exit' to quit): "); message = Console.ReadLine(); byte[] data = Encoding.ASCII.GetBytes(message); diff --git a/code/server/Server/Program.cs b/code/server/Server/Program.cs index 4bf003b..ccd8ca2 100644 --- a/code/server/Server/Program.cs +++ b/code/server/Server/Program.cs @@ -38,31 +38,27 @@ class Program clients[remoteEndPoint] = clientSocket; // Send connection message to client - string connectionMessage = "Connection established on port " + clientEndPoint.Port.ToString(); + 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(ReceiveMessages); - receiveThread.Start(clientSocket); + Thread receiveThread = new Thread(()=>ReceiveMessages(clientSocket)); + receiveThread.Start(); } } } - static void ReceiveMessages(object obj) + static void ReceiveMessages(UdpClient clientSocket) { - UdpClient clientSocket = (UdpClient)obj; IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); while (true) { byte[] receivedData = clientSocket.Receive(ref remoteEndPoint); - Console.WriteLine("PORRA"); string receivedMessage = Encoding.ASCII.GetString(receivedData); - Console.WriteLine("PORRA2"); Console.WriteLine("Received from " + remoteEndPoint.ToString() + ": " + receivedMessage); - Console.WriteLine("PORRA3"); } } -- 2.36.3