begin process at 2012 02 11 22:54:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Réseau & Internet

 > 

Socket sur WAN


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Socket sur WAN

samedi 21 mars 2009 à 19:42:59 | Socket sur WAN

galmone

Bonjour,
Voila mon probleme, j'ai une application client et une server, les 2 communiquent a merveille sur la loopback adresse (127.0.0.1-255), en LAN (192.168.1.32-64), mais pas sur WAN (77.234.52.3). Je sais plus quoi faire, personne peut m'aider on m'a dit des betises, que c'etait le port forwarding, le NAT, mon routeur, etc. j'ai tout essaye sans resultat y a-t-il une difference dans la maniere de programmer si on se trouve sur LAN ou WAN.

Merci pour toute reponse.

 

CLIENT

 

#include <stdio.h>

#include <stdlib.h>

#include <winsock.h>

 

#define port 23

 

int main()

{

                char buffer[32] = "";

  

                WSADATA wsadata;

                int error = WSAStartup(MAKEWORD(2, 0), &wsadata);

 

                SOCKET ssocket;

    SOCKADDR_IN sin;

 

                if(!error)

    {

        ssocket = socket(AF_INET, SOCK_STREAM, 0);

 

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

                               //sin.sin_addr.s_addr = inet_addr("127.0.0.1");

                               //sin.sin_addr.s_addr = inet_addr("88.207.235.123");

        sin.sin_family = AF_INET;

        sin.sin_port = htons(port);

 

                               if(connect(ssocket, (SOCKADDR *)&sin, sizeof(sin)) != SOCKET_ERROR)

                               {

                                               printf("\nConnected to %s with port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));

                                               if(recv(ssocket, buffer, 32, 0) != SOCKET_ERROR)

                printf("Recu : %s\n", buffer);

                               }

                               else

                               {

                                               printf("\nConnection error!\n");

                               }

 

                               closesocket(ssocket);

                }

 

                WSACleanup();

   

                system("PAUSE");

 

                return 0;

}

 

 

SERVER

 

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

#include <winsock.h>

 

#define port 23

 

int main()

{

                char buffer[32] = "Server on standby!!!";

 

    printf("\nStarting server...\n");

               

    WSADATA wsadata;

                int error = WSAStartup(MAKEWORD(2, 0), &wsadata);

               

                SOCKET ssocket;

                SOCKADDR_IN sin;

                SOCKET csocket;

                SOCKADDR_IN cin;

               

                int recsize = sizeof cin;

                int ssocket_err;

 

                if(!error)

                {

                               ssocket = socket(AF_INET, SOCK_STREAM, 0);

 

                               if(ssocket != INVALID_SOCKET)

                               {

                                               printf("Socket %d open in TCP/IP mode\n", ssocket);

 

                                               sin.sin_addr.s_addr       = htonl(INADDR_ANY);

                                               sin.sin_family                   = AF_INET;

                                               sin.sin_port                       = htons(port);

 

                                               ssocket_err = bind(ssocket, (SOCKADDR *) &sin, sizeof sin);

 

                                               if(ssocket_err != SOCKET_ERROR)

                                               {

                                                               printf("Listening on port %d...\n", port);

 

                                                               ssocket_err = listen(ssocket, 1);

                                                              

                                                               if(ssocket_err != SOCKET_ERROR)

                                                               {

                                                                              printf("Wait till client has connected to port %d...\n", port);

 

                                                                              csocket = accept(ssocket, (SOCKADDR *) &cin, &recsize);

 

                                                                              printf("Client is connected with socket %d de %s:%d\n", csocket, inet_ntoa(cin.sin_addr), htons(cin.sin_port));

               

                                                                              ssocket_err = send(csocket, buffer, 32, 1);

                                                                             

                                                                              if(ssocket_err != SOCKET_ERROR)

                    {

                                   printf("String sended: %s\n", buffer);

                    }

                    else

                    {

                                   printf("Transmission error\n");

                    }

 

                                                                              shutdown(csocket, 1);

                                                               }

                                               }

 

                                               printf("Closing server...\n\n");

                                               closesocket(ssocket);

 

                               }

                }

 

                WSACleanup();

 

                system("PAUSE");

               

                return 0;

}

 

 

 

 

 

bolozofvelasgo@hotmail.com

samedi 21 mars 2009 à 20:33:05 | Re : Socket sur WAN

goodboy21

salut ,  je ne pense pas que le soucis vient de ton programme puisqu'il  fonctionne en local. je ne connais pas la configuration de ton réseau mais je pense qu'elle doit être classique, c'est à dire que ton pc est connecté à un boitier adsl qui lui te donne accès au réseau internet. il faut savoir que par défaut le boitier est configuré pour empêcher toute demande de connection entrante. si tu veux accepter les demandes de connections tu dois ouvrir le ou les numeros de port concernés et les diriger vers l'adresse ip du pc qui acceptera la demande de connection. A mon avis c'est une manoeuvre que tu as dû déjà effectuer en ouvrant certains ports pour des logiciels de peer-to-peer. si toutefois  tu as des ports déjà ouverts utilise les pour tester ton programme, ça ne sert à rien d'en ouvrir d'autre.
lundi 23 mars 2009 à 08:48:52 | Re : Socket sur WAN

galmone

Merci je teste et je vouos tient au courrant :)
lundi 23 mars 2009 à 13:21:31 | Re : Socket sur WAN

DeAtHCrAsH

Salut,

Verifie aussi si tu n'as pas un firewall qui bloquerai ton programme.
Pour exemple le parefeu inclus avec windows xp autorise par défaut les conenctions sur un meme réseau, mais bloque toutes celles en direction du net.

En plus de cela il faut que tu paramètres ton routeur en prennant en compte la configutration de ton réseau.

Shell


Cette discussion est classée dans : port, socket, sin, addr, ssocket


Répondre à ce message

Sujets en rapport avec ce message

[SOCKET]Tjrs le pb de recuperation du buffer recv() [ par enthaz ] Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :D un coté j ai un logiciel client ki envoie "coucou" sur Socket, quand tu nous tiens ... [ par enthaz ] Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :D un coté j ai un logiciel client ki envoie "coucou" sur TimeOut sur un socket [ par djosh ] Voici un bout de code des sources du logiciel VNC, la fonction connect(). Mon but est de réduire le temps de réponse (message:"failed to connect to se Probleme de sockets [ par MaDC ] J'ai fait ça, mais la reception ferme mon appli mfc sans raison... biens ur on ne reçoit rien... si qq1 pouvait m'éclairer se serait sympa de sa part Création d'une socket .. [ par bubbless ] Bonjour !à l'aide !! J'ai programmé tout un systèle réseau / client, que j'ai enfin pu tester grâce à l'aide d'une âme charitable sur ce forum, et je Documentation Reseaux [ par SnowBlade360 ] Bonjour J'ai trouver sur inernet du code afin de crée une socket mais j'aimerais connaitre exactement tout les champs qui la compose voici mon code : Client html [ par elinep ] Voila le code d'un petit client html que j'ai trouve sur cppfrance:#include #include #include #pragma comment(lib, "ws2_32.lib")SOCKET s;in_addr addr; mail - socket - pk sa déconne ?!? [ par Gendal67 ] Bonsoir,Alors la, jvous en prie aidez moi avant que je ne prenne mon clavier, ma souris, mon modem et tout le reste et que je les cognent du +fort que Multiples messages non reçus...:(( [ par Gendal67 ] Bonsoir tout le monde!Je suis actuellement en cours d'apprentissage des Sockets et j'ai crée une application Client/Server pouvant communiquer ensembl Probleme de Socket [ par Basica ] Bonjour, j'ai un petit problème avec winsock que je n'arrive pas à résoudre. Mon but est de récuppérer des pages internet en utilisant winsock en C/C


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales