begin process at 2012 02 15 04:46:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Réseau et Internet

 > 

Probleme de connection avec Winsock


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

Probleme de connection avec Winsock

lundi 12 novembre 2001 à 16:47:39 | Probleme de connection avec Winsock

Luigi-Qc

Je veux programmer un petit chat fonctionnant avec winsock, mais il ne veut pas se connecté.

En mode local (2 chat.exe ouvert sur le meme ordinateur) sa fonctionne. Mais, dès que j'utilise 2 ordinateur différente ca ne connect pas sauf si je l'exécute instruction par instruction avec VB sur l'ordi qui est en serveur.

Je ne comprends pas pourquoi.

Voici le code (désolé il est lourd à cause des nombreux control d'interface)

Merci pour votre attention :)



Dim Msg As String
Dim Nick As String

Private Sub cmdConnect_Click()
Winsock.Close
DoEvents


Winsock.Connect txtIP, 7401

End Sub

Private Sub cmdSend_Click()
Dim Send As String
Dim NbEspaces As Integer
Send = Chr(13) & Chr(10) & "<" & Nick & ">: " & txtSend
Winsock.SendData (Send)
txtSend = ""
txtChat = txtChat & Send
txtChat.SelStart = Len(txtChat)
End Sub

Private Sub Form_Load()
Nick = "Guest"
End Sub

Private Sub Nom_Click()
Nick = InputBox("Quel est ton Surnom?", "Surnom", Nick)
Do While Nick = ""
Nick = InputBox("Tu dois entrer ton Surnom?", "Surnom", Nick)
Loop
End Sub

Private Sub optClient_Click()
If optClient.Value = True Then
txtIP.Enabled = True
txtIP.BackColor = &H80000009
If txtIP <> "" Then
cmdConnect.Enabled = True
End If
Winsock.Close
DoEvents
End If
End Sub

Private Sub optServer_Click()
If optServer.Value = True Then
txtIP.Enabled = False
txtIP.BackColor = &H8000000F
cmdConnect.Enabled = False
Rem Écoute du port
Winsock.Close
DoEvents


Winsock.LocalPort = 7401
DoEvents


Winsock.Listen
DoEvents
End If
End Sub


Private Sub txtIP_Change()
If txtIP = "" Then
cmdConnect.Enabled = False
Else
cmdConnect.Enabled = True
End If
End Sub

Private Sub Winsock_Close()
Status.Caption = "Non Connecté"
Status.ForeColor = &HFF&
If optClient = True Then
txtIP.Enabled = True
txtIP.BackColor = &H80000009
End If
optServer.Enabled = True
optClient.Enabled = True
txtSend.Enabled = False
cmdSend.Enabled = False
Details.Enabled = False
Deconnection.Enabled = False
If txtIP <> "" Then
cmdConnect.Enabled = True
End If
MsgBox "La connection a été perdu.", vbCritical
Winsock.Close
DoEvents
If optServer = True Then
Winsock.LocalPort = 7401
DoEvents


Winsock.Listen
DoEvents


End If
End Sub

Private Sub Winsock_Connect()
Status.Caption = "Connecté sur " & txtIP
Status.ForeColor = &H8000&
txtIP.Enabled = False
txtIP.BackColor = &H8000000F
cmdConnect.Enabled = False
optServer.Enabled = False
optClient.Enabled = False
txtChat.Enabled = True
txtSend.Enabled = True
cmdSend.Enabled = True
Details.Enabled = True
Deconnection.Enabled = True
End Sub

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim NbEspaces As Integer
Winsock.GetData Msg, vbString
DoEvents
txtChat = txtChat & Msg
txtChat.SelStart = Len(txtChat)
End Sub

Private Sub Winsock_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Dim Erreur As String
Winsock.Close
DoEvents
Status.Caption = "Non Connecté"
Status.ForeColor = &HFF&
txtIP.Enabled = True
txtIP.BackColor = &H80000009
optServer.Enabled = True
optClient.Enabled = True
txtChat.Enabled = False
txtSend.Enabled = False
cmdSend.Enabled = False
Details.Enabled = False
Deconnection.Enabled = False


If txtIP <> "" Then
cmdConnect.Enabled = True
End If
Erreur = "Erreur " & Number & ": " & Description
MsgBox Erreur, vbCritical
End Sub

Private Sub Winsock_ConnectionRequest(ByVal requestID As Long)

Winsock.Close
DoEvents

Winsock.Accept requestID
DoEvents


Status.Caption = "Connecté avec " & Winsock.RemoteHostIP
Status.ForeColor = &H8000&
optServer.Enabled = False
optClient.Enabled = False
txtChat.Enabled = True
txtSend.Enabled = True
cmdSend.Enabled = True
End Sub


mardi 13 novembre 2001 à 11:18:20 | Re : Probleme de connection avec Winsock

Larwin

Probleme deja traité... a toi de voir ce qui va pas...

http://forum.vbfrance.com/forum.asp?Article=20635



-------------------------------
Réponse au message :
-------------------------------

Je veux programmer un petit chat fonctionnant avec winsock, mais il ne veut pas se connecté.

En mode local (2 chat.exe ouvert sur le meme ordinateur) sa fonctionne. Mais, dès que j'utilise 2 ordinateur différente ca ne connect pas sauf si je l'exécute instruction par instruction avec VB sur l'ordi qui est en serveur.

Je ne comprends pas pourquoi.

Voici le code (désolé il est lourd à cause des nombreux control d'interface)

Merci pour votre attention :)



Dim Msg As String
Dim Nick As String

Private Sub cmdConnect_Click()
Winsock.Close
DoEvents


Winsock.Connect txtIP, 7401

End Sub

Private Sub cmdSend_Click()
Dim Send As String
Dim NbEspaces As Integer
Send = Chr(13) & Chr(10) & "<" & Nick & ">: " & txtSend
Winsock.SendData (Send)
txtSend = ""
txtChat = txtChat & Send
txtChat.SelStart = Len(txtChat)
End Sub

Private Sub Form_Load()
Nick = "Guest"
End Sub

Private Sub Nom_Click()
Nick = InputBox("Quel est ton Surnom?", "Surnom", Nick)
Do While Nick = ""
Nick = InputBox("Tu dois entrer ton Surnom?", "Surnom", Nick)
Loop
End Sub

Private Sub optClient_Click()
If optClient.Value = True Then
txtIP.Enabled = True
txtIP.BackColor = &H80000009
If txtIP <> "" Then
cmdConnect.Enabled = True
End If
Winsock.Close
DoEvents
End If
End Sub

Private Sub optServer_Click()
If optServer.Value = True Then
txtIP.Enabled = False
txtIP.BackColor = &H8000000F
cmdConnect.Enabled = False
Rem Écoute du port
Winsock.Close
DoEvents


Winsock.LocalPort = 7401
DoEvents


Winsock.Listen
DoEvents
End If
End Sub


Private Sub txtIP_Change()
If txtIP = "" Then
cmdConnect.Enabled = False
Else
cmdConnect.Enabled = True
End If
End Sub

Private Sub Winsock_Close()
Status.Caption = "Non Connecté"
Status.ForeColor = &HFF&
If optClient = True Then
txtIP.Enabled = True
txtIP.BackColor = &H80000009
End If
optServer.Enabled = True
optClient.Enabled = True
txtSend.Enabled = False
cmdSend.Enabled = False
Details.Enabled = False
Deconnection.Enabled = False
If txtIP <> "" Then
cmdConnect.Enabled = True
End If
MsgBox "La connection a été perdu.", vbCritical
Winsock.Close
DoEvents
If optServer = True Then
Winsock.LocalPort = 7401
DoEvents


Winsock.Listen
DoEvents


End If
End Sub

Private Sub Winsock_Connect()
Status.Caption = "Connecté sur " & txtIP
Status.ForeColor = &H8000&
txtIP.Enabled = False
txtIP.BackColor = &H8000000F
cmdConnect.Enabled = False
optServer.Enabled = False
optClient.Enabled = False
txtChat.Enabled = True
txtSend.Enabled = True
cmdSend.Enabled = True
Details.Enabled = True
Deconnection.Enabled = True
End Sub

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim NbEspaces As Integer
Winsock.GetData Msg, vbString
DoEvents
txtChat = txtChat & Msg
txtChat.SelStart = Len(txtChat)
End Sub

Private Sub Winsock_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Dim Erreur As String
Winsock.Close
DoEvents
Status.Caption = "Non Connecté"
Status.ForeColor = &HFF&
txtIP.Enabled = True
txtIP.BackColor = &H80000009
optServer.Enabled = True
optClient.Enabled = True
txtChat.Enabled = False
txtSend.Enabled = False
cmdSend.Enabled = False
Details.Enabled = False
Deconnection.Enabled = False


If txtIP <> "" Then
cmdConnect.Enabled = True
End If
Erreur = "Erreur " & Number & ": " & Description
MsgBox Erreur, vbCritical
End Sub

Private Sub Winsock_ConnectionRequest(ByVal requestID As Long)

Winsock.Close
DoEvents

Winsock.Accept requestID
DoEvents


Status.Caption = "Connecté avec " & Winsock.RemoteHostIP
Status.ForeColor = &H8000&
optServer.Enabled = False
optClient.Enabled = False
txtChat.Enabled = True
txtSend.Enabled = True
cmdSend.Enabled = True
End Sub



mardi 13 novembre 2001 à 11:19:37 | Re : Probleme de connection avec Winsock

Larwin

Probleme deja traité... a toi de voir ce qui va pas...

http://forum.vbfrance.com/forum.asp?Article=20635
mercredi 21 mai 2003 à 19:37:03 | Re : Probleme de connection avec Winsock

psykocrash

c normal, ton winsock, tu le met en client et en server. tu dois avoir 2 controls winsock.
winsock_client et winsock_server
eske tu peut parler avec plusieurs personnes en meme temps partir d'un poste telephonique ne permettant qu'un seul appel a la fois ?
lundi 27 octobre 2003 à 19:38:36 | Re : Probleme de connection avec Winsock

gregmena


GREG_SIDIUS


Voilà j'ai un problème de connection avec Winsock.
sur ma machine j'arrive de faire une connection et à transférer des donnée.

mais le problème, c'est que si je veux connecter 2 pc, marche pas et même sur internet !!!

le prog client est sur mon pc et le prog serveur sur une autre machine. on utilise le même port, et j'ai l'adresse ip du serveur.



voici le code.


==========Serveur==============
Dim FileOpen As Boolean 'Indique si le fichier est déjà ouvert
Dim cAvance, cLenTotal As Long 'Progression du téléchargement, et longueur totale

Private Sub cmdListen_Click()
wskRecevoir.LocalPort = 100
wskRecevoir.Listen 'On ouvre le port 100
End Sub

Private Sub Form_Unload(Cancel As Integer)
wskRecevoir.Close 'On ferme la connection Winsock
End Sub

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

Private Sub wskRecevoir_DataArrival(ByVal bytesTotal As Long)
Dim Data As String 'Variable qui va stoker les données pour creer le fichier
wskRecevoir.GetData Data 'Recevoir les données

If Left(Data, 6) = "Taille" Then 'Si le client envoi la taille du fichier,
cLenTotal = Int(Mid(Data, 7)) 'on l'enregistre
wskRecevoir.SendData "Go" 'On informe que l'on est prêt a recevoir le fichier
Exit Sub
End If

If FileOpen = False Then 'Si le fichier n'as pas encore été ouvert,
Open txtChemin.Text For Binary Access Write As #1 'on le fait
FileOpen = True 'Le fichier est maintenant ouvert (Sert pour ne pas l'ouvrir une deuxième fois)
ElseIf FileOpen = True Then 'S'il est déjà ouvert
DoEvents
End If
cAvance = cAvance + Len(Data) 'La progression du téléchargement
lblStatut.Caption = Int(cAvance / cLenTotal * 100) & "%" 'On affiche le pourcentage téléchargé
If Data = "FinEnvoi" Then 'Si le client informe que le fichier est terminé,
Close #1 'On ferme le fichier
FileOpen = False 'Le fichier n'est plus ouvert (Pour une éventuelle prochaine connection)
wskRecevoir.Close 'On ferme la connection
Else
Put 1, , Data 'On continu de creer le fichier qui télécharge
End If
End Sub


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

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

Public Function Send_File(FileToSend As String)
Dim Temp As String 'Variable qui va prendre, en langage binaire, le fichier à envoyer
Dim BlockSize As Long 'Variable qui va prendre la taille maximale du fichier a envoyer (Sert pour envoyer un gros fichier)
Open FileToSend For Binary Access Read As #1 'On ouvre le fichier a envoyer
BlockSize = 5000 'On place la longueur la plus haute (Ici pour un fichier de + de 5 Mo) [Très important pour éviter les bugs]
Do While Not EOF(1) 'On boucle jusqu'a ce que le fichier est terminé de télécharger
Temp = Space$(BlockSize) 'Give temp some space To store the data
Get 1, , Temp 'On place les données à envoyer dans la variable Temp
wskSend.SendData Temp 'On envoi les données
DoEvents
Loop
wskSend.SendData "FinEnvoi" 'On prévient que l'envoi est terminé
Close #1 'On ferme le fichier
End Function

Private Sub cmdSend_Click()
Send_File txtChemin.Text 'On envoi le fichier
End Sub

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



Private Sub wskSend_DataArrival(ByVal bytesTotal As Long)
Dim txtRecu As String
wskSend.GetData txtRecu
'Si la connection est vérifiée, on envoi la taille totale du fichier à envoyer pour effectuer un pourcentage de téléchargement :
If txtRecu = "ConnectionOk" Then wskSend.SendData "Taille" & FileLen(txtChemin.Text)
If txtRecu = "Go" Then cmdSend.Enabled = True: lblStatut.Caption = "Connecté" 'On est bien connecté
End Sub

Private Sub wskSend_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
lblStatut.Caption = Description 'On informe si une erreur se produit
End Sub


si vous trouver une soluce ce serai sympas. merci encore :)

lundi 8 mars 2004 à 16:47:28 | Re : Probleme de connection avec Winsock

the_best


The Best
J'ai le même problème HELPPPPPPPP URGENT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
lundi 8 mars 2004 à 16:50:25 | Re : Probleme de connection avec Winsock

the_best


The Best
PS 1) Il faut que ton port soit suppérieur à 100
PS 2) LE mien est suppérieur à 100 et CA NE MARCHE PAS PAR INTERNET RE-HELPPPPPPPP
samedi 27 mars 2004 à 09:06:09 | Re : Probleme de connection avec Winsock
dimanche 28 mars 2004 à 20:36:46 | Re : Probleme de connection avec Winsock

testtestiop

salut


avez vous bien verifié que vous utilisiez bien la bonne ip, c'est a dire quand vous etes sur internet ni 127.0.0.1 ni une ip privee. Le mieux etant de tester toutes vos ip. un moyen simple de voir si votre port est bien open etant de faire un telnet dessus.


en esperant vous avoir aidé
lundi 29 mars 2004 à 08:45:03 | Re : Probleme de connection avec Winsock

the_best

Bien non... désolé. j'ai un peut près tout essyé MAIS je crois que j'ai la solution !!!! Il faut (pêut-étre, ja'i pas encore essyé!) faire (coté serveur)


winsock.localport=5555
winsock.bind
winsock.listen



Si QQN peut essayer et me dire si sa marche, c'est parfait !!!

The Best

1 2

Cette discussion est classée dans : winsock, end, true, false, enabled


Répondre à ce message

Sujets en rapport avec ce message

Winsock : Déconnexion impossible. [ par link78180 ] Salut.Je débute un nouveau projet : un chat IRC passant sur irc.voila.fr .J'arrive à me connecter pépère, mon seul soucis, c'est que pour se déconnect Mise a jour d'une base de données [ par mick1819 ] BonjourJ'ai fait un menu de recherche pour parcourir la base de donnée de manière simplifiée... j'aimerai modifier les données, mais je n'arrive pas a Simplification de code enfantine !(pour débutant) [ par julbut23 ] Bonjour ,Voila ça put paraitre simple mais j'aimerais simplifier ce code (avec boucls ou autres ) :Private Sub Option1_Click(Index As Integer)    If I Bloquer tous les champs à part UN [ par 4rocky4 ] Bonjour, Je voudrais verrouiller tous les champs de mon formulaire de consultation sauf UN, une liste déroulante Pour verrouiller tous les champs, j'e Verrouiller et griser les textbox [ par Gil369 ] Bonjour a tous,nouvel inscrit et deja a la recherche d infos...je suis debutant en vba et tresorier d un club sportif, j ai commence un formulaire dan problème avec objet [ par volcom20 ] Salut j'ai un objet qui est un étudiant je veux avoir les information de mon étudiant au formload mais je suis incapable mon code est : Voila ma form Multi traitement [ par madflo ] Ce code me permet entre autre de gérer le déplacement de petits caré vers un endroit (caré control utilisateur) mais lorsque l'utilisateur créé trop d [VB] Modification des champs d'une table en ADO [ par bmichael007 ] Bonjour,j'aimerai savoir comment modifier les champs d'une tables (ex: opca avec designation, tel, fex, email...) avec un bouton de commande MODIFIER


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 2,309 sec (3)

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