Prb a la compilation vous vc++

Résolu
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 30 oct. 2005 à 10:30
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 30 oct. 2005 à 13:49
Bonjour,

j'ai tenté de faire un programme en C utilisant les sockets, la personne qui lance son programme choisi elle meme l'ip et le port a se connecter, déclarées de la facon suivante

char ip[15];
int port;

et ensuite pour que l'utilisateur les remplissent:

gets(ip);
scanf("%d",port);

visual c++ (je tourne sous vc2003) me le compile bien mais me met quand meme un message: "c:\documents and settings\shadow\mes documents\prog c\prog\main.cpp(15) : warning C4700: local variable 'port' used without having been initialized
"

mais si je lance le programme il me lance le debug et me dis qu'il y a un probleme a la ligne scanf("%d",port);

voici l'intégralité du prog au cas ou:


#include <stdio.h>


#include <stdlib.h>


#include <winsock2.h>


#pragma
comment(
lib, "ws2_32.lib")


int main(
int argc,
char *argv[])


{


char ip[15];


int port;


printf("quel est l'ip: ");


gets(ip);


printf("quel est le port: ");


scanf("%d",port);


WSADATA WSAData;


WSAStartup(MAKEWORD(2,0), &WSAData);


SOCKET sock;


SOCKADDR_IN sin;


char *buffer =
new
char[255];


sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);


sin.sin_addr.s_addr = inet_addr("62.250.14.6");


sin.sin_family = AF_INET;


sin.sin_port = htons(6667);


if(connect(sock, (SOCKADDR *)&sin,
sizeof(sin)))


{


printf("la connection a echouee");


exit(0);


}


else


{


printf("socket connected!");


}


closesocket(sock);


WSACleanup();


printf("\n\n");


system("pause");


return 0;


}

.

8 réponses

cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
30 oct. 2005 à 12:34
nan t'as pas compris ...

un exemple :

<--

char buff[42];

char ip[16];

int port;



printf("Entrez l'ip : ");

gets(buff);

strlcpy(ip, buff, strlen(ip));

printf("Entrez le port : ");

gets(buff);

port = atoi(buff);

-->

avec ca tu as bien ton ip et ton port

ip est bien une chaine de caractere

et port un int.
3
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
30 oct. 2005 à 13:12
int atoi(char buff);



elle converti en int une chaine de character

ex:

int nb;

char buff[5] = "1024";

nb = atoi(buff);

printf("nb: %d", nb);

cela va retourner:

nb: 1024
3
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
30 oct. 2005 à 11:27
Oula c'est archi pas securisé ton truc xD

enfin bref pour ton probleme deja tu pourrais commencer par les
utiliser tes variables, car tu ouvres une chaussette (socket) toujours
sur la meme ip et le meme port :

sin.sin_addr.s_addr = inet_addr("62.250.14.6");

sin.sin_family = AF_INET;

sin.sin_port = htons(6667);


ce qui est de l'erreur, a ta place je passerai par un char, suivit de 'port = atoi(temp);'
0
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
30 oct. 2005 à 11:30
oups la police a merdé :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
30 oct. 2005 à 11:37
ouai en plus me suis trompé a un moment g fé un essai normalement c'est


sin.sin_addr.s_addr = inet_addr(ip);


sin.sin_family = AF_INET;


sin.sin_port = htons(port);
0
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
30 oct. 2005 à 11:39
on peu pas car siin.sin_port = htons(port); c'est impossible que ca soit une chaine de caractere il me dis...
0
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
30 oct. 2005 à 12:48
merci mais tu peu m'expliquer ce qu'est la fonction atoi(); ? :s

.
0
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
30 oct. 2005 à 13:49
ah ok merci :)
0
Rejoignez-nous