Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1755 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Windows] Probleme de connection TCP :/

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Windows] Probleme de connection TCP :/

n°492230
Giz
Posté le 20-08-2003 à 11:27:41  profilanswer
 

Fichier CNet_comm.cpp
 

Code :
  1. char IG_ip_adress[16];
  2. int size_sock_in = sizeof(sock_in);
  3. //Allowing Windows Sockets initiation
  4. WSAStartup (MAKEWORD(2,0),&wsa);
  5. //Reading conf.ini file
  6. adr_port = atol (ReadIniConfFile("NETWORK", "IG_port" ));
  7. strcpy(IG_ip_adress, ReadIniConfFile("NETWORK", "SS_ip" ));
  8. //Socket initialisation
  9. sock_in.sin_family  = AF_INET;
  10. sock_in.sin_addr.s_addr = INADDR_ANY;//inet_addr(IG_ip_adress);
  11. sock_in.sin_port  = adr_port; /*adr_port vaut 139, je pense que cette instruction est fausse meme si ds le debuggeur sock_in.sin_port vaut 139 non ? */
  12. if (!tcp) {
  13.  //Using UDP protocol
  14.  sock = socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP);
  15.  bind(sock, (SOCKADDR*)&sock_in, sizeof(sock_in));
  16. }
  17. else {
  18.  //Using TCP protocol
  19.  sock = socket(AF_INET,SOCK_STREAM, IPPROTO_TCP);
  20.  bind(sock, (SOCKADDR*)&sock_in, sizeof(sock_in));
  21.  //TCP : connected mode
  22.  if(connect(sock,(SOCKADDR*)&sock_in,sizeof(sock_in)))
  23.   printf("TCP connection failed !\n" );
  24. }


le .h :
 

Code :
  1. class CNet_comm : public CFile
  2. {
  3. private :
  4.  WSADATA wsa;     /* Store Windows Sockets initialization information */
  5.  SOCKET sock;     /* Container of the socket */
  6.  SOCKADDR_IN sock_in;   /* Contain which adress to connect the socket */
  7.  long adr_port;  /* Adressee port */
  8.  char ip[16];     /* Adressee ip adress */


 
J'essai de me connecter via TCP a un autre ordi (rezo local de 2 pc). ni l'1 ni l'autre pc n'arrive a se connecter (la fonction en gras "connect" echoue tout le tps :/. Or le protocol UDP marche ! no pb mais j'arrive pas a etablir la connexion sur chacun des 2 postes en TCP. J'vois pas pkoi.
Je pense que c ma fonction htons() qui merde car si je l'utilise comme il faut d'apres la doc MSDN, la variable sock_in a pour num de port un gros chiffre qui n'a rien avoir. Pour que le port soit bien renseigne ds la structure, je dois faire une affectation directe sans passer par la fonction htons. Ce passage la m'est douteux (c peut etre ici que ca merde :/)
Je suis sous W98, VC++6


Message édité par Giz le 20-08-2003 à 11:53:32
mood
Publicité
Posté le 20-08-2003 à 11:27:41  profilanswer
 

n°492314
Konar
Posté le 20-08-2003 à 12:54:34  profilanswer
 

- remplace ton :
sock_in.sin_addr.s_addr = INADDR_ANY; //inet_addr(IG_ip_adress);  
par :
sock_in.sin_addr.S_un.S_addr = inet_addr(IG_ip_adress);
 
 - il faut le htons() :
sock_in.sin_port = htons(adr_port );
(http://msdn.microsoft.com/library/en-us/winsock/winsock/htons_2.asp)
 
 - essaye sans le bind(). normalement il est utile seulement dans le code qui écoute.
 
 - prend l'habitude de tester chaque valeur de retour, et d'appeler WSAGetLastError() après chaque echec d'une fonction socket, ca te donnera direct la raison de cet échec.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Windows] Probleme de connection TCP :/

 

Sujets relatifs
[ PhpBB 2] Problème authentification/session avec IE 5Petit problème de compréhension dans un passage de paramètre...
Probleme dans <input type=text>....gcc sous windows et msvcrt.dll
[PHP] cron sous windows, possible ?Probleme avec AUTO_INCREMENT
[Programmation windows en C++] Recherche d'un bon tutorial...[mySQL] probléme avec addslashes
Bureau windows web[directx ] probleme de débutant avec D3DXVECTOR3
Plus de sujets relatifs à : [Windows] Probleme de connection TCP :/


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR