-
connexion socket borland
Bonjour,
J'ai réalisé une application utilisant les sockets de borland c++ builder 6.
Au lancement, l'utilisateur choisit soit d'être serveur soit client.
J'ai testé l'application en réseau local et cela fonctionne parfaitement, même avec plusieurs clients connectés au serveur.
Le problème est survenu lorsque j'ai voulu tester l'application par le net :
Le socket client a affiché l'erreur suivante :
"erreur de synchronisation"
Ca veut dire quoi ?
Comment résoudre ce problème ?
La configuration de test n'était pas toute simple non plus je dois dire :
- Serveur derrière un routeur avec en + un firewall sur le PC
- client derrière une passerelle réseau avec kerio sur le PC qui possède la connexion internet et le firewall de windows sur le PC qui lancait l'application.
La configuration est compliquée c'est vrai mais c'est fait exprès, le truc c'est que je voudrais que mon appli fonctionne même dans des cas aussi compliqués.
Par exemple, comment fait Messenger ??? il arrive bien à se connecter même derrière un firewall non ?
Merci pour vos eclèrcissements.
-
Client / Serveur
Bonjour,
Ton application fonctionne très bien en local. Lorqu'il s'agit de communiquer via internet il faut faire attention bien évidement aux firewall et routeur.
1. Sur quel port communique ton application ?
2. Est ce que ce port est ouvert sur le firewall ?
3. Si le serveur est derrière un routeur, est ce que ce dernier est compatible NAT (translation d'addresse si l'on peut dire ça comme ça )
4. Le socket que tu as fait est en UDP ou TCP ?
Avec XP SP2, le fierwall est paramétrable facilement.
-
précisions
Tes questions sont pertinantes et je vais essayer d'y répondre
- Le port utilisé est le port 21 (je me suis dit que j'avais plus de chances de passer les firewalls dans ces conditions)
- j'ai ouvert le port 21 sur le PC qui me fournit l'accès internet et un serveur FTP arrive à fonctionner donc ça devrait être bon...
- L'application est en TCP
Par contre qu'est ce que c'est NAT ?
Désolé pour mon ignoorance et merci de t'interesser à mon soucis
-
Socket
Bonjour,
Es tu sûr que le port 21 n'est pas utilisé par un service ftp ? (iis par ex)
Je te conseillerai d'utiliser un port au delà de 3000 pour être vraiment sûr de ne pas prendre un port windows.
Juste une petite question. Est ce que le pc sur lequel est le firewall sert de serveur ? ou bien c'est un autre pc du réseau ?
Le NAT est un protocole qui permet au routeur de modifier l'adresse IP de destination. Quand un paquet arrive de l'extérieur (internet), il possède pour adresse de destination IP wan (ip visisble de l'extérieur attribué par le FAI). Une fois que le paquet atteinds le routeur, celui ci modifie cet IP en adresse local (IP Lan).
-
reponse
Le PC sur lequel est est firewall est juste un PC sous windiws qui fait parti du réseau.
Aucun serveur FTP n'est lancé en même temps que mon application.
Mais que signifie exactement "ereur : socket asynchrone" ?
Merci.
-
socket
Bonjour,
Quand tu utilise un socket synchrone, la méthode de connexion attend la fin de l'établissement de la connexion avant de passer à l'instruction suivante de ton code.
Alors que pour un socket asynchrone, la méthode de connexion est lancée et puis avant même que la connexion soit établit, on peux avoir d'autres instructions exécutées. Je me demande si c'est pas ton cas.