Problème - Socket / Adresse IP [C/C++] - C++ - Programmation
Marsh Posté le 02-01-2008 à 20:02:04
Je suis pas expert mais je croit pas que ça vienne de là, d'après ce que j'ai pu voir les fonctions genre gethostbyname(), gethostname()... servent à obtenir des infos sur le nom de domaine. Afin de pouvoir me connecter, je croit pas que ça me soit utile, je pense que seule l'ip et le port suffisent. Etant donné qu'à la base je connait l'ip du serveur, je devrai pas avoir besoin de manipuler le nom d'hote (sauf si je me connecte grâce a un DNS). Autre chose, j'ai oublié de préciser que pour l'instant j'ai réalisé mes tests chez moi en essayant de me connecter à ma propre ip publique.. c'est peut-être pour ça que ça ne fonctionne pas.. Je veux dire, j'ai remarqué qu'en réseau local on a même pas besoin d'avoir plusieurs machines pour réaliser une reception de paquets sur un port.. je sait pas du tout par quel composants du matériel le courant passe mais si ça se trouve, c'est impossible de faire ça avec internet. Donc peut-être que si je teste maintenant avec un pc distant ça marchera..C'est possible? Ce que j'ai dit est cohérent?
Marsh Posté le 03-01-2008 à 19:09:10
Problème résolu, du moins j'ai testé avec 2 machines distantes et ça fonctionne. Même si j'ai aucune idée de pourquoi ça marche pas sur son propre PC, suremment que c'est pas possible.. A moins que ça vienne de la ligne "shutdown (csock,2);" qui fait que le message est envoyé mais vu que le port se referme directement après, le client ne le reçois pas. Enfin bref si un jour ça peut aider quelqu'un, tant mieux.
Marsh Posté le 03-01-2008 à 22:07:59
Est-ce que t'arrives a pinger ton adresse IP publique depuis l'interieur ?
Marsh Posté le 03-01-2008 à 23:01:13
Je crois ouai, quand je tape dans la console:
ping [mon ip publique], ça envoie 4 paquets, je reçois les 4.
Marsh Posté le 07-10-2009 à 16:22:44
Slt preque 2 ans après, j'ai exactement le meme probleme, sauf que j'ai tester avec un pote et sa march pas, Ange j'aimerai prendre contact avec toi: zestyr@hotmail.fr. Comme ta eu le mem prob tu pourrai m'aider.
Bon je met mais code meme si je suis sure qu'il sont juste:
Serveur:
Code :
|
Client:
Code :
|
Marsh Posté le 07-10-2009 à 17:34:58
Tu dois rediriger les ports dans ta box, quand ce sera fait, ça fonctionnera en local avec ton ip 192.168.1.x et ta boucle locale (127.0.0.1). Quant à effectuer un test avec un connexion extérieure, tu ne peux le faire qu'avec une autre machine (extérieure à ton réseau local et via internet donc), parce que tu peux pas le faire à partir de ton pc même si tu passe par un proxy (c'est comme ça). Si rien de tout ça ne fonctionne pour l'instant, c'est tout simplement sois que tu n'a pas redirigé correctement le port sur lequel ton pc écoute(au niveau du routeur /box adsl), sois qu'un firewall bloque la connexion.
Marsh Posté le 01-01-2008 à 22:18:34
Bonjour,
J'ai dans le but de réaliser un échange de données tout simple (client/serveur) en tcp/ip. Pour l'instant, le serveur stocke du texte en mémoire avec un char[], et quand le client se connecte, le serveur le lui envoie..
Afin de vous épargner une lecture inutile, mon code marche (du moins je croit). Le problème ne viend apparemment pas de là c'est pourquoi je vous conseille de ne pas le lire et de passer à la suite.
Serveur:
Client:
Les deux codes (client et serveur) fonctionnent en réseau local:
-192.168.1.22..OK
-127.0.0.1.......OK
Par contre, quand je met mon ip publique (http://monip.org) ça foire:
Pour info, je possède une Neufbox NB4 et je tourne sous XP. J'ai fais une redirection du port 21235 vers mon pc:
(Je n'ai pas de firewall logiciel, juste avast comme anti-virus)
NAT:
Je comprend pas pourquoi ça fonctionne pas.. (même si c'est le cas en local) parce que l'objectif pour moi, c'est quand même que ça marche sur deux machine via internet... J'espère que vous pourrez m'aider, j'en serai super content!
PS: J'ai peut-être une piste, lorsque je me connecte avec l'ip publique sur le port fowardé (21235), même si je ne reçoit pas le paquet du serveur, j'ai l'impression qu'il détecte que je me suit connecté sur son socket (cf : screen) et tente de me l'envoyer, malheuresement ça coince et le client ne le reçoit pas..Bref si ça peut vous aider.
Merci de votre écoute