Je reprends une application en VB5 (dont je ne suis pas un spécialiste)
pour
ajouter une connexion cliente à un serveur via winsock. Le serveur est
hébergé sur
une autre machine et fonctionne avec d'autres applications).
Le client envoie simplement une demande (chaîne de caractères) et le
serveur
répond une chaîne de caractères (parfois binaire).
J'ai créé un petit projet pour faire fonctionner la connexion:
J'ai donc
.ajouté un contrôle winsock à la fenêtre du projet
.mis le code suivant à l'ouverture
------------------------------------------
Private Sub Form_Load()
Dim serpatRep As String
Dim serpatip As String
serpatip = "172.31.1.1"
Winsock1.Close
Winsock1.LocalPort = 0
Winsock1.RemoteHost = serpatip
Winsock1.RemotePort = 3000
Winsock1.Connect
If Winsock1.State = sckConnected Then
serpatRep = ""
Winsock1.SendData "CX@" & SerpatApp & "@" & SerpatPwd & "@" &
SerpatUsr & "@ASCII"
DoEvents
DoEvents
If serpatRep <> "000" Then
serpatip = ""
End If
Else
serpatip = "" 'marche pas
End If
End Sub
-------------------------------------
.mis le code suivant sur le contrôle Winsock:
--------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim recu As Byte
recu = Space(bytesTotal)
Winsock1.GetData recu, vbByte + vbArray, bytesTotal
serpatRep = serpatRep & recu
End Sub
---------------------------------------
.ce qui se passe:
.la connexion s'effectue correctement
.le Senddata s'effectue correctement (vu dans le log du serveur)
.le DataArrival n'est jamais déclenché (alors que le serveur a bien
répondu) (j'ai mis
un point d'arrêt où je ne passe jamais). La propriété BytesReceived
reste à 0.
Après des recherches sur Google: j'ai alloué la variable de réception (du
genre recu=space(...) , ajouté les Doevents, cela n'a pas changé. Faut-il
faire quleque chose de particulier pour
activer les événements des sockets ou ???
Merci de toute idée..
--
J.Bratières
Enlever paspub pour répondre
Please remove paspub when answering
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"nwjb" a écrit dans le message de news:
Bonjour,
Je reprends une application en VB5 (dont je ne suis pas un spécialiste) pour ajouter une connexion cliente à un serveur via winsock. Le serveur est hébergé sur une autre machine et fonctionne avec d'autres applications).
Le client envoie simplement une demande (chaîne de caractères) et le serveur répond une chaîne de caractères (parfois binaire).
J'ai créé un petit projet pour faire fonctionner la connexion:
J'ai donc .ajouté un contrôle winsock à la fenêtre du projet .mis le code suivant à l'ouverture ------------------------------------------ Private Sub Form_Load() Dim serpatRep As String Dim serpatip As String serpatip = "172.31.1.1" Winsock1.Close Winsock1.LocalPort = 0 Winsock1.RemoteHost = serpatip Winsock1.RemotePort = 3000 Winsock1.Connect If Winsock1.State = sckConnected Then serpatRep = "" Winsock1.SendData "CX@" & SerpatApp & "@" & SerpatPwd & "@" & SerpatUsr & "@ASCII" DoEvents DoEvents If serpatRep <> "000" Then serpatip = "" End If Else serpatip = "" 'marche pas End If
End Sub ------------------------------------- .mis le code suivant sur le contrôle Winsock: -------------------------------------- Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim recu As Byte recu = Space(bytesTotal) Winsock1.GetData recu, vbByte + vbArray, bytesTotal serpatRep = serpatRep & recu End Sub --------------------------------------- .ce qui se passe: .la connexion s'effectue correctement .le Senddata s'effectue correctement (vu dans le log du serveur) .le DataArrival n'est jamais déclenché (alors que le serveur a bien répondu) (j'ai mis un point d'arrêt où je ne passe jamais). La propriété BytesReceived reste à 0. Après des recherches sur Google: j'ai alloué la variable de réception (du genre recu=space(...) , ajouté les Doevents, cela n'a pas changé. Faut-il faire quleque chose de particulier pour activer les événements des sockets ou ???
Hello,
ajoute simplement vbCrLf à la fin de ton SendData.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"nwjb" <j.bratieres.invalid.paspub@online.fr> a écrit dans le message de
news:op.symm9id64ctpuf@news.online.fr...
Bonjour,
Je reprends une application en VB5 (dont je ne suis pas un spécialiste)
pour
ajouter une connexion cliente à un serveur via winsock. Le serveur est
hébergé sur
une autre machine et fonctionne avec d'autres applications).
Le client envoie simplement une demande (chaîne de caractères) et le
serveur
répond une chaîne de caractères (parfois binaire).
J'ai créé un petit projet pour faire fonctionner la connexion:
J'ai donc
.ajouté un contrôle winsock à la fenêtre du projet
.mis le code suivant à l'ouverture
------------------------------------------
Private Sub Form_Load()
Dim serpatRep As String
Dim serpatip As String
serpatip = "172.31.1.1"
Winsock1.Close
Winsock1.LocalPort = 0
Winsock1.RemoteHost = serpatip
Winsock1.RemotePort = 3000
Winsock1.Connect
If Winsock1.State = sckConnected Then
serpatRep = ""
Winsock1.SendData "CX@" & SerpatApp & "@" & SerpatPwd & "@" &
SerpatUsr & "@ASCII"
DoEvents
DoEvents
If serpatRep <> "000" Then
serpatip = ""
End If
Else
serpatip = "" 'marche pas
End If
End Sub
-------------------------------------
.mis le code suivant sur le contrôle Winsock:
--------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim recu As Byte
recu = Space(bytesTotal)
Winsock1.GetData recu, vbByte + vbArray, bytesTotal
serpatRep = serpatRep & recu
End Sub
---------------------------------------
.ce qui se passe:
.la connexion s'effectue correctement
.le Senddata s'effectue correctement (vu dans le log du serveur)
.le DataArrival n'est jamais déclenché (alors que le serveur a bien
répondu) (j'ai mis
un point d'arrêt où je ne passe jamais). La propriété BytesReceived
reste à 0.
Après des recherches sur Google: j'ai alloué la variable de réception (du
genre recu=space(...) , ajouté les Doevents, cela n'a pas changé. Faut-il
faire quleque chose de particulier pour
activer les événements des sockets ou ???
Hello,
ajoute simplement vbCrLf à la fin de ton SendData.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Je reprends une application en VB5 (dont je ne suis pas un spécialiste) pour ajouter une connexion cliente à un serveur via winsock. Le serveur est hébergé sur une autre machine et fonctionne avec d'autres applications).
Le client envoie simplement une demande (chaîne de caractères) et le serveur répond une chaîne de caractères (parfois binaire).
J'ai créé un petit projet pour faire fonctionner la connexion:
J'ai donc .ajouté un contrôle winsock à la fenêtre du projet .mis le code suivant à l'ouverture ------------------------------------------ Private Sub Form_Load() Dim serpatRep As String Dim serpatip As String serpatip = "172.31.1.1" Winsock1.Close Winsock1.LocalPort = 0 Winsock1.RemoteHost = serpatip Winsock1.RemotePort = 3000 Winsock1.Connect If Winsock1.State = sckConnected Then serpatRep = "" Winsock1.SendData "CX@" & SerpatApp & "@" & SerpatPwd & "@" & SerpatUsr & "@ASCII" DoEvents DoEvents If serpatRep <> "000" Then serpatip = "" End If Else serpatip = "" 'marche pas End If
End Sub ------------------------------------- .mis le code suivant sur le contrôle Winsock: -------------------------------------- Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim recu As Byte recu = Space(bytesTotal) Winsock1.GetData recu, vbByte + vbArray, bytesTotal serpatRep = serpatRep & recu End Sub --------------------------------------- .ce qui se passe: .la connexion s'effectue correctement .le Senddata s'effectue correctement (vu dans le log du serveur) .le DataArrival n'est jamais déclenché (alors que le serveur a bien répondu) (j'ai mis un point d'arrêt où je ne passe jamais). La propriété BytesReceived reste à 0. Après des recherches sur Google: j'ai alloué la variable de réception (du genre recu=space(...) , ajouté les Doevents, cela n'a pas changé. Faut-il faire quleque chose de particulier pour activer les événements des sockets ou ???
Hello,
ajoute simplement vbCrLf à la fin de ton SendData.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
nwjb
Le Fri, 14 Oct 2005 13:51:30 +0200, Jean-Marc a écrit:
"nwjb" a écrit dans le message de news:
Bonjour,
Je reprends une application en VB5 (dont je ne suis pas un spécialiste) pour ajouter une connexion cliente à un serveur via winsock. Le serveur est hébergé sur une autre machine et fonctionne avec d'autres applications).
Le client envoie simplement une demande (chaîne de caractères) et le serveur répond une chaîne de caractères (parfois binaire).
J'ai créé un petit projet pour faire fonctionner la connexion:
J'ai donc .ajouté un contrôle winsock à la fenêtre du projet .mis le code suivant à l'ouverture ------------------------------------------ Private Sub Form_Load() Dim serpatRep As String Dim serpatip As String serpatip = "172.31.1.1" Winsock1.Close Winsock1.LocalPort = 0 Winsock1.RemoteHost = serpatip Winsock1.RemotePort = 3000 Winsock1.Connect If Winsock1.State = sckConnected Then serpatRep = "" Winsock1.SendData "CX@" & SerpatApp & "@" & SerpatPwd & "@" & SerpatUsr & "@ASCII" DoEvents DoEvents If serpatRep <> "000" Then serpatip = "" End If Else serpatip = "" 'marche pas End If
End Sub ------------------------------------- .mis le code suivant sur le contrôle Winsock: -------------------------------------- Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim recu As Byte recu = Space(bytesTotal) Winsock1.GetData recu, vbByte + vbArray, bytesTotal serpatRep = serpatRep & recu End Sub --------------------------------------- .ce qui se passe: .la connexion s'effectue correctement .le Senddata s'effectue correctement (vu dans le log du serveur) .le DataArrival n'est jamais déclenché (alors que le serveur a bien répondu) (j'ai mis un point d'arrêt où je ne passe jamais). La propriété BytesReceived reste à 0. Après des recherches sur Google: j'ai alloué la variable de réception (du genre recu=space(...) , ajouté les Doevents, cela n'a pas changé. Faut-il faire quleque chose de particulier pour activer les événements des sockets ou ???
Hello,
ajoute simplement vbCrLf à la fin de ton SendData.
Merci, mais non: les données échangées sont binaires et ne comportent pas de crlf. Par ailleurs le SendData fonctionne bien (le serveur reçoit d'ailleurs bien les données). C'est le GetData qui ne fonctionne pas.. -- J.Bratières
Enlever paspub pour répondre Please remove paspub when answering
Le Fri, 14 Oct 2005 13:51:30 +0200, Jean-Marc
<NO_SPAM_jean_marc_n2@yahoo.fr> a écrit:
"nwjb" <j.bratieres.invalid.paspub@online.fr> a écrit dans le message de
news:op.symm9id64ctpuf@news.online.fr...
Bonjour,
Je reprends une application en VB5 (dont je ne suis pas un spécialiste)
pour
ajouter une connexion cliente à un serveur via winsock. Le serveur est
hébergé sur
une autre machine et fonctionne avec d'autres applications).
Le client envoie simplement une demande (chaîne de caractères) et le
serveur
répond une chaîne de caractères (parfois binaire).
J'ai créé un petit projet pour faire fonctionner la connexion:
J'ai donc
.ajouté un contrôle winsock à la fenêtre du projet
.mis le code suivant à l'ouverture
------------------------------------------
Private Sub Form_Load()
Dim serpatRep As String
Dim serpatip As String
serpatip = "172.31.1.1"
Winsock1.Close
Winsock1.LocalPort = 0
Winsock1.RemoteHost = serpatip
Winsock1.RemotePort = 3000
Winsock1.Connect
If Winsock1.State = sckConnected Then
serpatRep = ""
Winsock1.SendData "CX@" & SerpatApp & "@" & SerpatPwd &
"@" &
SerpatUsr & "@ASCII"
DoEvents
DoEvents
If serpatRep <> "000" Then
serpatip = ""
End If
Else
serpatip = "" 'marche pas
End If
End Sub
-------------------------------------
.mis le code suivant sur le contrôle Winsock:
--------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim recu As Byte
recu = Space(bytesTotal)
Winsock1.GetData recu, vbByte + vbArray, bytesTotal
serpatRep = serpatRep & recu
End Sub
---------------------------------------
.ce qui se passe:
.la connexion s'effectue correctement
.le Senddata s'effectue correctement (vu dans le log du serveur)
.le DataArrival n'est jamais déclenché (alors que le serveur a bien
répondu) (j'ai mis
un point d'arrêt où je ne passe jamais). La propriété BytesReceived
reste à 0.
Après des recherches sur Google: j'ai alloué la variable de réception
(du
genre recu=space(...) , ajouté les Doevents, cela n'a pas changé.
Faut-il
faire quleque chose de particulier pour
activer les événements des sockets ou ???
Hello,
ajoute simplement vbCrLf à la fin de ton SendData.
Merci, mais non: les données échangées sont binaires et ne comportent pas
de crlf.
Par ailleurs le SendData fonctionne bien (le serveur reçoit d'ailleurs
bien les
données). C'est le GetData qui ne fonctionne pas..
--
J.Bratières
Enlever paspub pour répondre
Please remove paspub when answering
Le Fri, 14 Oct 2005 13:51:30 +0200, Jean-Marc a écrit:
"nwjb" a écrit dans le message de news:
Bonjour,
Je reprends une application en VB5 (dont je ne suis pas un spécialiste) pour ajouter une connexion cliente à un serveur via winsock. Le serveur est hébergé sur une autre machine et fonctionne avec d'autres applications).
Le client envoie simplement une demande (chaîne de caractères) et le serveur répond une chaîne de caractères (parfois binaire).
J'ai créé un petit projet pour faire fonctionner la connexion:
J'ai donc .ajouté un contrôle winsock à la fenêtre du projet .mis le code suivant à l'ouverture ------------------------------------------ Private Sub Form_Load() Dim serpatRep As String Dim serpatip As String serpatip = "172.31.1.1" Winsock1.Close Winsock1.LocalPort = 0 Winsock1.RemoteHost = serpatip Winsock1.RemotePort = 3000 Winsock1.Connect If Winsock1.State = sckConnected Then serpatRep = "" Winsock1.SendData "CX@" & SerpatApp & "@" & SerpatPwd & "@" & SerpatUsr & "@ASCII" DoEvents DoEvents If serpatRep <> "000" Then serpatip = "" End If Else serpatip = "" 'marche pas End If
End Sub ------------------------------------- .mis le code suivant sur le contrôle Winsock: -------------------------------------- Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim recu As Byte recu = Space(bytesTotal) Winsock1.GetData recu, vbByte + vbArray, bytesTotal serpatRep = serpatRep & recu End Sub --------------------------------------- .ce qui se passe: .la connexion s'effectue correctement .le Senddata s'effectue correctement (vu dans le log du serveur) .le DataArrival n'est jamais déclenché (alors que le serveur a bien répondu) (j'ai mis un point d'arrêt où je ne passe jamais). La propriété BytesReceived reste à 0. Après des recherches sur Google: j'ai alloué la variable de réception (du genre recu=space(...) , ajouté les Doevents, cela n'a pas changé. Faut-il faire quleque chose de particulier pour activer les événements des sockets ou ???
Hello,
ajoute simplement vbCrLf à la fin de ton SendData.
Merci, mais non: les données échangées sont binaires et ne comportent pas de crlf. Par ailleurs le SendData fonctionne bien (le serveur reçoit d'ailleurs bien les données). C'est le GetData qui ne fonctionne pas.. -- J.Bratières
Enlever paspub pour répondre Please remove paspub when answering