Problème Winsock

Signaler
Messages postés
41
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
18 mars 2010
-
Messages postés
41
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
18 mars 2010
-
Bonjour à toutes et à tous,

J'explique un petit peu l'interface de mon logiciel et ensuite mon problème.

TOut d'abord, je créer un FORM qui se nomme "Serveur" qui lui possède un controle Winsock.

Je créer un nouveau projet (appelé "Client") avec un nouveau FORM qui comporte également un controle Winsock.

Sur le client, le controle Winsock à pour code :
winsock.Connect "192.168.0.1", 12666
winsock.SendData (id)


Ce code à donc pour but d'envoyer au FORM avec le winsock ouvert une donnée qui sera retranscrit sur le label nommé "id".

Ca fonctionne parfaitement en local donc.

Maintenant, passons au problème :

Je souhaite faire la même chose, mais cette fois-ci, je vais utilisé mon IP public ce qui transforme la parcelle de code ci-dessus en :
winsock.Connect "x.x.x.x", 12666 
winsock.SendData (id)


' les x sont bien entendu remplacés par mon IP public.

Le problème est, que, cette fois ci, cela ne marche pas...

Je me suis penché sur mon firewall en le désactivant temporairement mais cela ne fonctionne toujours pas...

Question : Quelqu'un a t-il un tuyau à me filer car je vois pas du tout là ou ca coince.....

(Si j'ai mal expliqué la situation, n'hésitez pas à me le faire remarquer pour que je puisse expliquer le problème plus clairement :))

Merci d'avance amis programmeur :)

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Techniquement, tu ne peux pas émettre et recevoir sur la même adresse IP.
Normal donc que cela ne fonctionne pas si tu tentes de te connecter à ta propre adresse IP public.
Mais si cela fonctionne avec ton IP locale, pas de souci, ça marchera aussi depuis ton adresse IP public, sous réserve que ton parefeu ET ton routeur (régles NAT) aient bien les ports ouverts (ports serveur, côté client, rien à faire)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
PS : Si tu te connectes à une IP public, cela peut demander quelques millisecondes :
Pense à tester le State de ta connexion avant de vouloir lui envoyer quelque chose.
Voir les multiples exemples présents parmi les sources du site.
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
3
salut
Pense à tester le State de ta connexion avant de vouloir lui envoyer quelque chose


si tu connecte ton socket et tu envoi directement les données pourquoi ne pas utiliser l'évenement winsock_connect ?

sinon un autre moyen peut être que sa peut t'aider :
winsock.Connect "x.x.x.x", 12666 
'tan que le winsock n'est pas prêt on retourne la main à windows 
while winsock.state <> 7
doevents
wend
winsock.SendData (id)



Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
41
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
18 mars 2010

Merci pour les informations que tu m'as donné Jack :)

Je testerai cela d'une autre IP :)

Je tiens également à te remercier Claiyah pour le code que tu ma présentés..je vais regarder ca de très prêt et je te ferais un retour via ce topic :)

Merci encore Jack et Claiyah pour vos réponses :)