char * parametres[3];
// Définition des variables
WSADATA initialisation_win32; // Variable permettant de récupérer la structure d'information sur l'initialisation
int erreur; // Variable permettant de récupérer la valeur de retour des fonctions utilisées
int tempo; // Variable temporaire de type int
int nombre_de_caractere; // Indique le nombre de caractères qui a été reçu ou envoyé
char buffer[5]; // Tampon contenant les données reçues ou envoyées
SOCKET id_de_la_socket; // Identifiant de la socket
SOCKADDR_IN information_sur_la_source; // Déclaration de la structure des informations lié à l'écoute
// Initialisation de Winsock
erreur=WSAStartup(MAKEWORD(2,2),&initialisation_win32);
if (erreur!=0)
MessageBox::Show("Désolé, initialisation Winsock impossible","Erreur",MessageBoxButtons::OK,MessageBoxIcon::Error);
// Ouverture d'une Socket
id_de_la_socket=socket(AF_INET,SOCK_DGRAM,0);
if (id_de_la_socket==INVALID_SOCKET)
MessageBox::Show("Désolé, création du socket impossible","Erreur",MessageBoxButtons::OK,MessageBoxIcon::Error);
// Lie la socket à une ip et un port d'écoute
information_sur_la_source.sin_family=AF_INET;
information_sur_la_source.sin_addr.s_addr=INADDR_ANY; // Ecoute sur toutes les IP locales
information_sur_la_source.sin_port=htons(33333); // Ecoute sur le port 33333
erreur=bind(id_de_la_socket,(struct sockaddr*)&information_sur_la_source,sizeof(information_sur_la_source));
if (erreur!=0)
MessageBox::Show("Désolé, écoute ce port impossible","Erreur",MessageBoxButtons::OK,MessageBoxIcon::Error);
// Reception des données
for(int i=0;i<3;i++)
{
tempo=sizeof(information_sur_la_source); // Passe par une variable afin d'utiliser un pointeur
nombre_de_caractere=recvfrom(id_de_la_socket,buffer,1515,0,(struct sockaddr*)&information_sur_la_source,&tempo);
buffer[nombre_de_caractere]=0; // Permet de fermer le tableau après le contenu des data, car la fonction recvfrom ne le fait pas
String ^attente = gcnew String(buffer);
MessageBox::Show("buffer = " + attente + " ; i = " + i);
parametres[i] = buffer;
String ^atpar0 = gcnew String(parametres[0]);
String ^atpar1 = gcnew String(parametres[1]);
String ^atpar2 = gcnew String(parametres[2]);
MessageBox::Show("parametres0 = " + atpar0);
MessageBox::Show("parametres1 = " + atpar1);
MessageBox::Show("parametres2 = " + atpar2);
}
// Fermeture de la socket correspondant à la commande socket()
erreur=closesocket(id_de_la_socket);
if (erreur!=0)
MessageBox::Show("Désolé, libération du socket impossible","Erreur",MessageBoxButtons::OK,MessageBoxIcon::Error);
String ^numTest = gcnew String(parametres[0]);
String ^valRes = gcnew String(parametres[1]);
String ^valTemps = gcnew String(parametres[2]);
MessageBox::Show("numTest : " + numTest);
MessageBox::Show("valRes : " + valRes);
MessageBox::Show("valTemps : " + valTemps);
test::Form1::Text += "Console de test " + numTest;
//Affichage des arguments dans un label
label1->Text += "Valeur résistance : ";
label1->Text += valRes;
label1->Text += " Ohm(s)";
label1->Text += "\n\n";
label1->Text += "Valeur échantillonage : ";
label1->Text += valTemps;
label1->Text += " Seconde(s)";
label1->Text += "\n\n";
label1->Text += "N° du test : ";
label1->Text += numTest;
voila le code...