Winsock avec internet

gregmena Messages postés 22 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 19 novembre 2006 - 29 oct. 2003 à 09:41
cs_the_best Messages postés 212 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 6 avril 2006 - 6 avril 2004 à 11:50
GREG_SIDIUS

Bonjour à tous, je viens de commencer à programmer avec le contrôle Winsock et j'ai un problème. Le voici :

je viens de faire un programme Client<---->Server, mais le problème c'est que mon petit prog fct sur ma machine ou sur un réseau, mais PAS SUR INTERNET, POURQUOI ?

pourtant le serveur est cher un ami, j'ai son ip, et moi je suis le client et ça marche pas.

si vous avez une solution se serait bien sympas.

Voici mon code :

=============SERVEUR===============

Private Sub Command1_Click()
Serveur.LocalPort = 100
Serveur.Listen 'On ouvre le port 100
End Sub

Private Sub Form_Unload(Cancel As Integer)
Serveur.Close
End Sub

Private Sub Serveur_ConnectionRequest(ByVal requestID As Long)
If Serveur.State <> sckClosed Then 'Si la connection n'est pas fermée,
Serveur.Close 'on la ferme
Serveur.Accept requestID 'On accepte la connection qui arrive
Serveur.SendData "ConnectionOk" 'Et on l'informe du début de la connection
End If
End Sub

Private Sub Serveur_DataArrival(ByVal bytesTotal As Long)
Dim Data As String 'Variable qui va stoker les données
Serveur.GetData Data 'Recevoir les données
Text2.Text = Data
End Sub

================Client==================

Private Sub Command2_Click()
client.Close 'Au cas où il serait encore connecter (évite les plantages)
client.Connect txtIP.Text, 100 'On se connecte
End Sub

Private Sub client_DataArrival(ByVal bytesTotal As Long)
Dim datta As String
client.GetData datta
Label3.Caption = datta
End Sub

Private Sub client_Connect()
MsgBox "connecter ok"
End Sub

Private Sub Form_Load()
txtIP.Text = client.LocalIP 'On met l'IP du PC par défault
End Sub

Private Sub Form_Unload(Cancel As Integer)
client.Close
End Sub

Private Sub Text1_Change()
client.SendData Text1.Text
End Sub

Merci de répondre :)

3 réponses

gregmena Messages postés 22 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 19 novembre 2006
29 oct. 2003 à 09:42
GREG_SIDIUS

GREG_SIDIUS

Bonjour à tous, je viens de commencer à programmer avec le contrôle Winsock et j'ai un problème. Le voici :

je viens de faire un programme Client<---->Server, mais le problème c'est que mon petit prog fct sur ma machine ou sur un réseau, mais PAS SUR INTERNET, POURQUOI ?

pourtant le serveur est cher un ami, j'ai son ip, et moi je suis le client et ça marche pas.

si vous avez une solution se serait bien sympas.

Voici mon code :

=============SERVEUR===============

Private Sub Command1_Click()
Serveur.LocalPort = 100
Serveur.Listen 'On ouvre le port 100
End Sub

Private Sub Form_Unload(Cancel As Integer)
Serveur.Close
End Sub

Private Sub Serveur_ConnectionRequest(ByVal requestID As Long)
If Serveur.State <> sckClosed Then 'Si la connection n'est pas fermée,
Serveur.Close 'on la ferme
Serveur.Accept requestID 'On accepte la connection qui arrive
Serveur.SendData "ConnectionOk" 'Et on l'informe du début de la connection
End If
End Sub

Private Sub Serveur_DataArrival(ByVal bytesTotal As Long)
Dim Data As String 'Variable qui va stoker les données
Serveur.GetData Data 'Recevoir les données
Text2.Text = Data
End Sub

================Client==================

Private Sub Command2_Click()
client.Close 'Au cas où il serait encore connecter (évite les plantages)
client.Connect txtIP.Text, 100 'On se connecte
End Sub

Private Sub client_DataArrival(ByVal bytesTotal As Long)
Dim datta As String
client.GetData datta
Label3.Caption = datta
End Sub

Private Sub client_Connect()
MsgBox "connecter ok"
End Sub

Private Sub Form_Load()
txtIP.Text = client.LocalIP 'On met l'IP du PC par défault
End Sub

Private Sub Form_Unload(Cancel As Integer)
client.Close
End Sub

Private Sub Text1_Change()
client.SendData Text1.Text
End Sub

Merci de répondre :)
0
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
11 nov. 2003 à 03:02
txtip.text = client.localip

-1- client.localip n'est pas forcement defini :
par exemple : si tu lance ton pgm hors connexion, le local ip sera 0.0.0.0

-2- tu ne dis pas ce qui ne marche pas : c'est au lancement du pgm ? a la connection ? a l'envoi ou recpetion de donnees ?

-3- n'utilise pas le port 100 : les ports jusque 1024 sont reserves. utilise plutot des ports genre 10000. fais gaffe aussi a ne pas prendre de port utilise par un virus : ton antivirus te jouera des tours dans ce cas

-4- n'utilise pas text1_change pour envoyer. prend plutot un bouton "envoyer" :

sub bpSend_click()
client.senddate text1.text
end sub

-5- dans le serveur : juste histoire de permettre une reconnection apres une deconnexion

private sub serveur_close()
serveur.close
serveur.listen
end sub

sinon je vois pas pourquoi ca marche pas
0
cs_the_best Messages postés 212 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 6 avril 2006
6 avril 2004 à 11:50
J'ai la solution (après 2 mois de recherche)

The Best :-p
La !
0
Rejoignez-nous