Skip to content
Snippets Groups Projects
Commit 6ff1609f authored by OPALVENS Florence's avatar OPALVENS Florence
Browse files

ajout client avec get et post

parent 6d9625e9
Branches master
No related merge requests found
......@@ -18,7 +18,7 @@ namespace ClientUdp
class ChatMessage
{
public const int bufferSize = 1500;
public const int headerSize = 35;
public Commande commande; // commande
public CommandeType commandeType; // type (Requête/Réponse)
public int dataSize; // taille de la donnée
......
......@@ -5,11 +5,13 @@ using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ClientUdp
{
class ClientUdp
{
const int MsgsBufferSize = 1000000;
static string getPseudo()
{
String pseudo = String.Empty;
......@@ -60,9 +62,9 @@ namespace ClientUdp
try
{
//************************************************************** Initialisation
string serverIP = "130.79.81.200"; // A changer
string serverIP = "130.79.81.68"; // A changer
int serverPort = 17021; // A changer
bool continuer = true;
// Création de la socket d'écoute UDP
Socket clientSocket = new Socket(
......@@ -74,35 +76,58 @@ namespace ClientUdp
// Liaison de la socket au point de communication
clientSocket.Bind(new IPEndPoint(IPAddress.Any,58600));
while (continuer)
{
// Création du EndPoint serveur
EndPoint serverEP = new IPEndPoint(IPAddress.Parse(serverIP), serverPort);
//appel de la fonction qui renvoie le pseudo lu au clavier avec les vérifications nécessaires
string pseudo = getPseudo();
//appel de la fonction qui renvoie le message lu au clavier avec les vérifications nécessaires
string msg = getMessage();
//création du message en POST et en GET de type REQUETE avec le message entré au clavier plus le pseudo entré également au clavier
ChatMessage chat_message = new ChatMessage(Commande.POST, CommandeType.REQUETE, msg, pseudo);
ChatMessage chat_messagePost = new ChatMessage(Commande.GET, CommandeType.REQUETE, "", "");
//************************************************************** Communications
// Encodage string dans un buffer de bytes en ASCII
//transformation des messages en Bytes et placer dans les différents buffer
//création du buffer qui va réceptionner la liste de messages
byte[] buffer = chat_message.GetBytes();
byte[] bufferPost = chat_messagePost.GetBytes();
byte[] bufferGet = new byte[MsgsBufferSize];
//Console.WriteLine("Taille buffer : " + buffer.Length);
// Envoie du message POST au serveur
clientSocket.SendTo(buffer, 0, buffer.Length, SocketFlags.None, serverEP);
Thread.Sleep(3000);
// Envoie du message GET au serveur
clientSocket.SendTo(bufferPost, 0, bufferPost.Length, SocketFlags.None, serverEP);
//réception de la liste des messages
int nBytes = clientSocket.ReceiveFrom(bufferGet, bufferGet.Length, SocketFlags.None, ref serverEP);
//désérialisation de la chaîne comportant les messages avec pseudo
string messages = System.Text.Encoding.ASCII.GetString(bufferGet,0, nBytes);
string[] listMessages = messages.Split('/');
//affichage des messages
foreach(string mess in listMessages)
{
Console.WriteLine(mess);
}
/*Console.WriteLine("Nouveau message envoye vers "
+ serverEP
+ " (" + nBytes + " octets)"
+ ": \"" + msg + "\"");*/
// Création du EndPoint serveur
EndPoint serverEP = new IPEndPoint(IPAddress.Parse(serverIP), serverPort);
//appel de la fonction qui renvoie le pseudo lu au clavier avec les vérifications nécessaires
string pseudo = getPseudo();
//appel de la fonction qui renvoie le message lu au clavier avec les vérifications nécessaires
string msg = getMessage();
//création du message en POST, de type REQUETE avec le message entré au clavier plus le pseudo entré également au clavier
ChatMessage chat_message = new ChatMessage(Commande.POST,CommandeType.REQUETE,msg,pseudo);
//************************************************************** Communications
// Encodage du string dans un buffer de bytes en ASCII
//transformation du message en Bytes et placer dans le buffer
byte [] buffer = chat_message.GetBytes();
Console.WriteLine("Taille buffer : " + buffer.Length);
// Envoie du message au serveur
int nBytes = clientSocket.SendTo(buffer, 0, buffer.Length, SocketFlags.None, serverEP);
Console.WriteLine("Nouveau message envoye vers "
+ serverEP
+ " (" + nBytes + " octets)"
+ ": \"" + msg + "\"");
}
//************************************************************** Conclusion
// Fermeture socket
......
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