Problème débutant

Problème débutant - C - Programmation

Marsh Posté le 30-05-2007 à 15:17:22    

Bonjour, je travaille sur un programme client serveur, pour se connecter à un serveur le client se connecte grace à l'adresse ip au serveur demandé. Or dans mon programme j'ai #define IP_SERVEUR "127.0.0.1" au début et je voudrait savoir comment je pourrait saissir moi même cette ip! Est ce que cela est possible à l'aide des arguments?
Avec les argument est ce que je pourrait passer de ceci:
sinfo.sin_addr.s_addr = inet_addr(IP_SERVEUR);
à ceci:
sinfo.sin_addr.s_addr = inet_addr(argv[1]);
Merci de m'aider

Reply

Marsh Posté le 30-05-2007 à 15:17:22   

Reply

Marsh Posté le 30-05-2007 à 15:24:04    

Argc, argv.
 
Pourquoi ce serait pas possible ?
Pourquoi n'essayes-tu pas ?


---------------
Töp of the plöp
Reply

Marsh Posté le 30-05-2007 à 15:33:00    

Et bien cela ne marche pas! Est ce que cela peu venir du fait que sinfo.sin_addr.s_addr = inet_addr(argv[1]);  ne soit pas dans la fonction main mais dans void Client(void) ?? Et si c'est pour cela est ce que je doit mettre void Client(int argc, char *argv[]) ??

Reply

Marsh Posté le 30-05-2007 à 15:37:54    

Je pense que c'est parce qu'il manque un point-virgule à la ligne 42.

Reply

Marsh Posté le 30-05-2007 à 15:41:17    

Je ne pense pas ^^ personne ne peu m'aider?

Reply

Marsh Posté le 30-05-2007 à 15:43:02    

Sans code, sans rien ,non.


---------------
Töp of the plöp
Reply

Marsh Posté le 30-05-2007 à 15:51:04    

Code :
  1. #include <windows.h>
  2. #include <winsock.h>
  3. #include <stdio.h>
  4. #include <process.h>
  5. #include <malloc.h>
  6. #include <stdlib.h>
  7. #pragma comment(lib,"wsock32.lib" )
  8. void Client(void);
  9. #define IP_SERVEUR "127.0.0.1"
  10. #define PORT_SERVEUR 23
  11. WSADATA WSAData;
  12. SOCKET sock;
  13. SOCKADDR_IN sinfo;
  14. int sinfosize;
  15. int WINAPI WinMain (HINSTANCE hinstance,HINSTANCE hprevinstance,
  16.                     LPSTR lpcmdline,int ncmdshow)
  17. {
  18. Client();
  19. return 0;
  20. }
  21. void Client(void)
  22. {
  23. int Etat;
  24. char *buffer;
  25. int TailleFichier;
  26. WSAStartup(MAKEWORD(2,0),&WSAData);
  27. sock=socket(AF_INET,SOCK_STREAM,0);
  28. sinfo.sin_addr.s_addr = inet_addr(IP_SERVEUR);
  29. sinfo.sin_family = AF_INET;
  30. sinfo.sin_port = htons(PORT_SERVEUR);
  31. Etat=connect(sock,(SOCKADDR *)&sinfo,sizeof(sinfo));
  32. //suite déconnection.....
  33. }


 
voila le code pour les arguments j'avait donc modifié :

Code :
  1. int WINAPI WinMain (int argc, char *argv[],HINSTANCE hinstance,HINSTANCE hprevinstance,
  2.                     LPSTR lpcmdline,int ncmdshow)


et  

Code :
  1. sinfo.sin_addr.s_addr = inet_addr(argv[1]);


Message édité par 2ben2 le 30-05-2007 à 15:52:09
Reply

Marsh Posté le 30-05-2007 à 15:58:35    

Spoiler :

[:rofl]

 

T'as modifié ce qu'il ne fallait pas ...
- argc, argv sont les variables standard pour une fonction main dans un programme console type DOS.
- Ici tu as un projet windows... Modifier le prototype de winmain n'est pas vraiment conseillé.
- Selon la doc, LPSTR lpcmdline est censé être quoi ?

 


Message édité par _darkalt3_ le 30-05-2007 à 15:58:49

---------------
Töp of the plöp
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed