grums45
Messages postés10Date d'inscriptionjeudi 31 mai 2007StatutMembreDernière intervention27 juin 2007
-
25 juin 2007 à 11:04
grums45
Messages postés10Date d'inscriptionjeudi 31 mai 2007StatutMembreDernière intervention27 juin 2007
-
27 juin 2007 à 11:38
bonjour je suis étudiant en informatique, dans le cadre d'un stage j'ai une application réseau à réaliser en c. Mon problème est le suivant suite à la compilation de mon programme lors de l'appel du programme,celui-ci s'éxécute sans rien réaliser.
Voici comment je l'éxécute: nom-programme TCP serveur 8000
Je pense que le problème doit venir de cet comparaison ( if ((argc!=2 && strcmp(argv[1],"manuelle")==0) || (argc!=5
&& strcmp(argv[2],"client")==0) || (argc!=4 &&
strcmp(argv[2],"serveur")==0)) )
Mon programme est le suivant:
#include <winsock.h> /* pour les fonctions socket...*/
#include<stdio.h>
#include<string.h>
#include <time.h>
#pragma comment(lib, "ws2_32.lib")
#define TAILLE_BUFFER 1000
//declaration des variables globales//
char proto[256];
char rep[256];
int port=10000;
char adresse_ip[255];
char msg[1000];
char buffer[1000];
char continuer[6];
//côté serveur
void serveur()
{
SOCKET id_de_la_nouvelle_socket; // Identifiant de la nouvelle socket
SOCKADDR_IN information_sur_la_source; // Déclaration de la structure des informations lié à l'écoute
SOCKET ouverture;
SOCKET ecoute;
int tempo;
printf("test dkfsjdqkhf");
//entrer dans la connexion TCP et UDP//
information_sur_la_destination.sin_addr.s_addr = htonl(INADDR_ANY);;
information_sur_la_destination.sin_family = AF_INET;
information_sur_la_destination.sin_port = htons(port);
if (acceptation != INVALID_SOCKET)
{
printf ("Le client est connecte a la socket %d sur %s:%d\n"
,acceptation
,inet_ntoa (information_sur_la_source.sin_addr)
,htons (information_sur_la_source.sin_port));
}
}
//demande du protocole//
printf("protocole(udp ou tcp):");
scanf("%s", &proto);
while ((strcmp(proto,"u")!=0&&strcmp(proto,"udp")!=0)&&(strcmp(proto,"t")!=0&&strcmp(proto,"tcp")!=0))
{
printf("veuillez entrez une valeur correct (udp ou tcp)\n");
scanf("%s",&proto);
}
//demande du poste//
printf("poste client ou serveur:");
scanf("%s", &rep);
while ((strcmp(rep,"c")!=0&&strcmp(rep,"client")!=0)&&(strcmp(rep,"s")!=0&&strcmp(rep,"serveur")!=0))
{
printf("veuillez entrez une valeur correct(Client ou Serveur)\n");
scanf("%s",&rep);
}
//port d'ecoute//
printf("port:");
scanf("%i", &port);
if (port==0)
{
port=10000;
}
}
//fonction principale//
int main(int argc, char* argv[] )
{
int demarrage,mode,i;
WSADATA WSAData;
for (i=1;i<argc;i++)
{
if (strlen (argv[i])<0)
{
strcpy (argv[i],"test");
}
}
if ((argc!=2 && strcmp(argv[1],"manuelle")==0) || (argc!=5 && strcmp(argv[2],"client")==0) || (argc!=4 && strcmp(argv[2],"serveur")==0))
{
printf ("\nmain2 - 2007 - Damien Schaeffer");
printf ("\n-------------------------------");
printf ("\nSyntaxe main2 [protocole place port [@IP]]||[manuelle]");
printf ("\n\n\t - protocole = TCP || UDP");
printf ("\n\t - place = serveur || client");
printf ("\n\t - port = entre 5000 et 10000");
printf ("\n\t - [@IP] = adresse IP destination.Uniquement valable pour le client");
printf ("\n\n mettez juste "manuelle" si vous souhaitez rentrer les donnees via le programme");