//CLIENT
#include <stdio.h> //standard
#include <iostream.h>//pour le cout (c++)
#include <winsock.h> //pour la connexion sur le serveur
#include <conio.h> //pour le getch() - la pause a la fin
#include <string.h> //pour les chaines
#include <stdlib.h> //pour le itoa()
void main()
{
char buffer[1024];
char r[3],a[3],b[3];
char envoi[10];
int choix=0;
cout << " << CLIENT >>"<<endl<<endl<<endl;
//MENU de choix
printf("\n1 - Perimetre d'un rectangle" );
printf("\n2 - Surface d'un rectangle" );
printf("\n3 - Circonference d'un cercle" );
printf("\n4 - Surface d'un cercle" );
printf("\n5 - Quitter" );
printf("\n\nChoix : " );
scanf("%d",&choix);
switch (choix)
{
case 1 : {
//perimetre d'un rectangle
printf("Saisissez la largeur\n : " );
scanf("%s",&a);
printf("Saisissez la longueur\n : " );
scanf("%s",&b);
//connexion sur le server
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
SOCKET sock;
sock = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("127.0.0.1" );
sin.sin_family = AF_INET;
sin.sin_port = htons(50);
connect(sock,(SOCKADDR *)&sin,sizeof(sin));
itoa(choix,envoi,10);
strcat(envoi,"x" );
strcat(envoi,a);
strcat(envoi,"q" );
strcat(envoi,b);
cout << envoi << "**" << choix << endl;
send(sock,envoi,50,0);
cout << endl <<"le perimetre du rectangle est de : ";
//reception
int i = recv(sock,buffer,sizeof(buffer),0);
if (i != false)
{
cout << buffer << endl; //affichage du resultat
}
closesocket(sock); //fermeture du socket
WSACleanup();
}break;
case 2 : {
//surface d'un rectangle
printf("Saisissez la largeur\n : " );
scanf("%s",&a);
printf("Saisissez la longueur\n : " );
scanf("%s",&b);
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
SOCKET sock;
sock = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("127.0.0.1" );
sin.sin_family = AF_INET;
sin.sin_port = htons(50);
connect(sock,(SOCKADDR *)&sin,sizeof(sin));
itoa(choix,envoi,10);
strcat(envoi,"x" );
strcat(envoi,a);
strcat(envoi,"q" );
strcat(envoi,b);
cout << envoi << "**" << choix << endl;
send(sock,envoi,50,0);
cout << endl <<"le perimetre du rectangle est de : ";
int i = recv(sock,buffer,sizeof(buffer),0);
if (i != false)
{
cout << buffer << endl;
}
closesocket(sock);
WSACleanup();
}break;
case 3 : {
//circonference d'un cercle
printf("Saisissez le rayon du cercle\n: " );
scanf("%s",&r);
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
SOCKET sock;
sock = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("127.0.0.1" );
sin.sin_family = AF_INET;
sin.sin_port = htons(50);
connect(sock,(SOCKADDR *)&sin,sizeof(sin));
itoa(choix,envoi,10);
strcat(envoi,"x" );
strcat(envoi,r);
cout << envoi << "**" << choix << endl;
send(sock,envoi,50,0);
cout << endl <<"---> Donnees"<<endl<<"Rayon : "<<r<<endl<<endl<<"la circonference du cercle est de : ";
int i = recv(sock,buffer,sizeof(buffer),0);
if (i != false)
{
cout << buffer << endl;
}
closesocket(sock);
WSACleanup();
}break;
case 4 : {
//Surface d'un cercle
printf("Saisissez le rayon du cercle\n: " );
scanf("%s",&r);
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
SOCKET sock;
sock = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("127.0.0.1" );
sin.sin_family = AF_INET;
sin.sin_port = htons(50);
connect(sock,(SOCKADDR *)&sin,sizeof(sin));
itoa(choix,envoi,10);
strcat(envoi,"x" );
strcat(envoi,r);
cout << envoi << "**" << choix << endl;
send(sock,envoi,50,0);
cout << endl <<"---> Donnees"<<endl<<"Rayon : "<<r <<endl<<endl<< "la surface du cercle est de : ";
int i = recv(sock,buffer,sizeof(buffer),0);
if (i != false)
{
cout << buffer << endl;
}
closesocket(sock);
WSACleanup();
}break;
case 5 : break;
}
getchar();
getch();
}