Skip to content
Snippets Groups Projects
Commit 87442ee1 authored by HOFFMANN MARTIN's avatar HOFFMANN MARTIN
Browse files

Fin du client asynchrone

parent b380c42a
Tags v1.3
No related merge requests found
No preview for this file type
No preview for this file type
......@@ -12,14 +12,21 @@ namespace ClientUdp
{
class ClientUdp
{
static bool exit;
private static Socket clientSocket;
private static EndPoint serverEP;
// Déclaration du thread
private static Thread threadSub = new Thread(new ThreadStart(receptionMessage));
static void Main(string[] args)
{
try
{
//************************************************************** Initialisation
string serverIP = "192.168.43.123"; // A changer
int serverPort = 1000; // A changer
string serverIP = "192.168.137.63"; // A changer
int serverPort = 1000; // A changer
// Création de la socket d'écoute UDP
......@@ -41,52 +48,50 @@ namespace ClientUdp
Console.Write("? ");
String msg = Console.ReadLine();
bool estSub = false;
bool exit = true;
exit = false;
// lancement du thread d'ecoute lié au socket d'ecoute clientSocket
threadSub.Start();
//************************************************************** Communications
//ChatMessage messageRecu = new ChatMessage(bufferReception);
while (exit)
while (!exit)
{
if (msg.Substring(0, 1) == "/") //si commande d'un type special
{
/*
if (msg.Substring(1, 3).Equals("GET")) //si commande GET
{ //on envoie un message en GET
ClientUdp.envoyerMessage(Commande.GET, clientSocket, serverEP, msg.Substring(1, 3), "martin");
ClientUdp.receptionMessage(serverEP, clientSocket);
}
else if (msg.Substring(1, 4).Equals("QUIT"))
ClientUdp.receptionMessage();
}*/
if (msg.Substring(1, 4).Equals("QUIT"))
{
ClientUdp.envoyerMessage(Commande.UNSUBSCRIBE, clientSocket, serverEP, "UNSUBSCRIBE", "martin");
estSub = false;
exit = false;
exit = true;
}
else if(msg.Substring(1,9).Equals("SUBSCRIBE"))
else if (msg.Substring(1, 9).Equals("SUBSCRIBE"))
{
ClientUdp.envoyerMessage(Commande.SUBSCRIBE, clientSocket, serverEP, msg.Substring(1, 9), "martin");
estSub = true;
}
else if (msg.Substring(1, 11).Equals("UNSUBSCRIBE"))
{
ClientUdp.envoyerMessage(Commande.UNSUBSCRIBE, clientSocket, serverEP, msg.Substring(1, 11), "martin");
estSub = false;
}
else
{ //on envoie un message en POST
ClientUdp.envoyerMessage(Commande.POST,clientSocket, serverEP, msg, "martin");
ClientUdp.envoyerMessage(Commande.POST, clientSocket, serverEP, msg, "martin");
}
}
else //sinon toujours en POST
{
ClientUdp.envoyerMessage(Commande.POST, clientSocket, serverEP, msg, "martin");
}
if (estSub)
{
Console.WriteLine("Message reçu");
ClientUdp.receptionMessage(serverEP, clientSocket);
}
Console.Write("? ");
msg = Console.ReadLine();
}
......@@ -117,8 +122,6 @@ namespace ClientUdp
// Envoie du message au serveur
int nBytes = clientSocket.SendTo(buffer, 0, buffer.Length, SocketFlags.None, serverEP);
//** Communications
Console.WriteLine("Nouveau message envoye vers "
......@@ -127,19 +130,27 @@ namespace ClientUdp
+ ": \"" + message.data + "\"");
}
public static void receptionMessage(EndPoint serverEP, Socket clientSocket)
public static void receptionMessage()
{
Thread.Sleep(1000); //attend 1 sec
do //parcourt tous les messages
try
{
byte[] bufferReception = new byte[1500];
int nBytes = clientSocket.ReceiveFrom(bufferReception, bufferReception.Length, SocketFlags.None, ref serverEP);
ChatMessage message = new ChatMessage(bufferReception);
Console.WriteLine("Nouveau message reçu de "
+ serverEP
+ " (" + nBytes + " octets)"
+ ": \"" + message.pseudo + " : " + message.data + "\"");
} while (clientSocket.Available != 0);
do //parcourt tous les messages
{
byte[] bufferReception = new byte[1500];
int nBytes = clientSocket.ReceiveFrom(bufferReception, bufferReception.Length, SocketFlags.None, ref serverEP);
ChatMessage message = new ChatMessage(bufferReception);
Console.WriteLine("Nouveau message reçu de "
+ serverEP
+ " (" + nBytes + " octets)"
+ ": \"" + message.pseudo + " : " + message.data + "\"");
} while (clientSocket.Available != 0);
}
catch (NullReferenceException ex)
{
Console.WriteLine("Aucun nouveau message");
}
}
}
}
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment