Je d=E9veloppe une application qui se sert des sockets et j'aimerais
pouvoir recuperer les donn=E9es se trouvant dans la fonction
data_arrival.
Public sub data_arrival(byval bytes as long)
dim data
winsock1.getdata data
end sub
Je pense qu'il faudrai transformer la fonction ci dessus en fonction
afin de pouvoir renvoyer le tableau dans mon programme lorsque
j'appelerais la fonction data arrival mais comment faut t'il faire ?
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
Jacques93
Bonjour john.ambou, a écrit :
Bonjour,
Je développe une application qui se sert des sockets et j'aimerais pouvoir recuperer les données se trouvant dans la fonction data_arrival.
Public sub data_arrival(byval bytes as long) dim data winsock1.getdata data end sub
Je pense qu'il faudrai transformer la fonction ci dessus en fonction afin de pouvoir renvoyer le tableau dans mon programme lorsque j'appelerais la fonction data arrival mais comment faut t'il faire ?
Quelqu'un peut il m'aider svp ?
Merci Johnson
Tu ne peux pas modifier la déclaration d'une procédure événementielle, sous peine d'avoir une erreur :
Erreur de compilation : La déclaration de la procédure ne correspond pas à la description de l'événement ou de la procédure du même nom.
Par ailleurs, même s'il est possible d'appeler une procédure d'événement, cela ne servirait à rien ici. Comment peux tu déterminer que des données sont disponibles. La procédure est appelée à ce moment là.
Une solution est de déclarer ton buffer de réception au niveau global, et non pas en local dans la procedure.
NB: en déclarant Dim data, tu ne types pas la variable, elle est donc de type Variant (c'est peut être voulu)
-- Cordialement,
Jacques.
Bonjour john.ambou,
john.ambou@free.fr a écrit :
Bonjour,
Je développe une application qui se sert des sockets et j'aimerais
pouvoir recuperer les données se trouvant dans la fonction
data_arrival.
Public sub data_arrival(byval bytes as long)
dim data
winsock1.getdata data
end sub
Je pense qu'il faudrai transformer la fonction ci dessus en fonction
afin de pouvoir renvoyer le tableau dans mon programme lorsque
j'appelerais la fonction data arrival mais comment faut t'il faire ?
Quelqu'un peut il m'aider svp ?
Merci
Johnson
Tu ne peux pas modifier la déclaration d'une procédure événementielle,
sous peine d'avoir une erreur :
Erreur de compilation :
La déclaration de la procédure ne correspond pas à la description de
l'événement ou de la procédure du même nom.
Par ailleurs, même s'il est possible d'appeler une procédure
d'événement, cela ne servirait à rien ici. Comment peux tu déterminer
que des données sont disponibles. La procédure est appelée à ce moment là.
Une solution est de déclarer ton buffer de réception au niveau global,
et non pas en local dans la procedure.
NB: en déclarant Dim data, tu ne types pas la variable, elle est donc de
type Variant (c'est peut être voulu)
Je développe une application qui se sert des sockets et j'aimerais pouvoir recuperer les données se trouvant dans la fonction data_arrival.
Public sub data_arrival(byval bytes as long) dim data winsock1.getdata data end sub
Je pense qu'il faudrai transformer la fonction ci dessus en fonction afin de pouvoir renvoyer le tableau dans mon programme lorsque j'appelerais la fonction data arrival mais comment faut t'il faire ?
Quelqu'un peut il m'aider svp ?
Merci Johnson
Tu ne peux pas modifier la déclaration d'une procédure événementielle, sous peine d'avoir une erreur :
Erreur de compilation : La déclaration de la procédure ne correspond pas à la description de l'événement ou de la procédure du même nom.
Par ailleurs, même s'il est possible d'appeler une procédure d'événement, cela ne servirait à rien ici. Comment peux tu déterminer que des données sont disponibles. La procédure est appelée à ce moment là.
Une solution est de déclarer ton buffer de réception au niveau global, et non pas en local dans la procedure.
NB: en déclarant Dim data, tu ne types pas la variable, elle est donc de type Variant (c'est peut être voulu)
Bonjour , j'ai testé votre et plusieurs autre cas que voici mais aucun ne fonctionne pouvez vous m'aidez ?
J'utilise une aplication avec winsock. je souhaite envoyer un paquet avec la commande send vers mon serveur je veux ensuite récupere un ACK pour me dire que mon paquet a bien été recu voici mon code
1 essai : dim buffer(4) as byte dim buffer1 buffer(3) = 1 Winsock1.send buffer 'une fois que mon serveur a recu mon buffer mon il doit simplement mettre la valeur 2 dans le buffer qu'il va me renvoyer je relit donc ensuite les données
winsock1.getdata buffer1 'je fais ensuite une condition qui me montrera que ce que je fais est correcte
if buffer1(3) = 2 then MsgBox ("reception ok")
Je trouve l'erreur 9 "subscript out of range"
2e essai : dim buffer(4) as byte dim buffer1 buffer(3) = 1 Winsock1.send buffer 'une fois que mon serveur a recu mon buffer mon il doit simplement mettre la valeur 2 dans le buffer qu'il va me renvoyer je relit donc ensuite les données
J'utilise ensuite l'évenement data arrival afin de récuperer les données mais mon probleme est que je ne peux récuperer les données de ce sub (j'ai essayé de transformer ce sub en fonction mais on ne peut y toucher, j'ai aussi une nouvelle fonction :
public function data_arrival () dim data winsock1.getdata data data_arrival data end function
ensuite dans mon programme principale je recupere le tableau mais lorsque j'esssaye de lire data(3) j'ai l'erreur 9 "subscript out range")
3 essai : J'ai réessayer la premiere methode en déclarant data en variable globale mais ceci ne fonctionne pas non plus.
Avez vous une solution a me proposer ?
Merci Johnson
Bonjour ,
j'ai testé votre et plusieurs autre cas que voici mais aucun ne
fonctionne pouvez vous m'aidez ?
J'utilise une aplication avec winsock.
je souhaite envoyer un paquet avec la commande send vers mon serveur je
veux ensuite récupere un ACK pour me dire que mon paquet a bien été
recu voici mon code
1 essai :
dim buffer(4) as byte
dim buffer1
buffer(3) = 1
Winsock1.send buffer
'une fois que mon serveur a recu mon buffer mon il doit simplement
mettre la valeur 2 dans le buffer qu'il va me renvoyer je relit donc
ensuite les données
winsock1.getdata buffer1
'je fais ensuite une condition qui me montrera que ce que je fais est
correcte
if buffer1(3) = 2 then
MsgBox ("reception ok")
Je trouve l'erreur 9 "subscript out of range"
2e essai :
dim buffer(4) as byte
dim buffer1
buffer(3) = 1
Winsock1.send buffer
'une fois que mon serveur a recu mon buffer mon il doit simplement
mettre la valeur 2 dans le buffer qu'il va me renvoyer je relit donc
ensuite les données
J'utilise ensuite l'évenement data arrival afin de récuperer les
données mais mon probleme est que je ne peux récuperer les données
de ce sub
(j'ai essayé de transformer ce sub en fonction mais on ne peut y
toucher, j'ai aussi une nouvelle fonction :
public function data_arrival ()
dim data
winsock1.getdata data
data_arrival data
end function
ensuite dans mon programme principale je recupere le tableau mais
lorsque j'esssaye de lire data(3) j'ai l'erreur 9 "subscript out
range")
3 essai :
J'ai réessayer la premiere methode en déclarant data en variable
globale mais ceci ne fonctionne pas non plus.
Bonjour , j'ai testé votre et plusieurs autre cas que voici mais aucun ne fonctionne pouvez vous m'aidez ?
J'utilise une aplication avec winsock. je souhaite envoyer un paquet avec la commande send vers mon serveur je veux ensuite récupere un ACK pour me dire que mon paquet a bien été recu voici mon code
1 essai : dim buffer(4) as byte dim buffer1 buffer(3) = 1 Winsock1.send buffer 'une fois que mon serveur a recu mon buffer mon il doit simplement mettre la valeur 2 dans le buffer qu'il va me renvoyer je relit donc ensuite les données
winsock1.getdata buffer1 'je fais ensuite une condition qui me montrera que ce que je fais est correcte
if buffer1(3) = 2 then MsgBox ("reception ok")
Je trouve l'erreur 9 "subscript out of range"
2e essai : dim buffer(4) as byte dim buffer1 buffer(3) = 1 Winsock1.send buffer 'une fois que mon serveur a recu mon buffer mon il doit simplement mettre la valeur 2 dans le buffer qu'il va me renvoyer je relit donc ensuite les données
J'utilise ensuite l'évenement data arrival afin de récuperer les données mais mon probleme est que je ne peux récuperer les données de ce sub (j'ai essayé de transformer ce sub en fonction mais on ne peut y toucher, j'ai aussi une nouvelle fonction :
public function data_arrival () dim data winsock1.getdata data data_arrival data end function
ensuite dans mon programme principale je recupere le tableau mais lorsque j'esssaye de lire data(3) j'ai l'erreur 9 "subscript out range")
3 essai : J'ai réessayer la premiere methode en déclarant data en variable globale mais ceci ne fonctionne pas non plus.
Avez vous une solution a me proposer ?
Merci Johnson
jm
wrote in message >news:
.. Avez vous une solution a me proposer ?
Hello,
il me semble que le plus raisonnable est de commencer par lire un bon livre sur VB puis de lire la documentation en ligne.
La plupart de tes problèmes viennent simplement d'un mauvais usage du langage.
Exemple, pris dans ton code:
Dim buffer1
msgbox buffer1(3)
1) déclarée comme cela, buffer1 est un variant tu essaies d'accéder à l'élément 3, ce qui ne va pas. tu as donc une erreur "Out of range"
Version correcte: Dim buffer1(4) as Byte
msgbox Buffer1(3)
Toutes tes erreurs sont du même genre, donc: - lire la doc pour voir l'emploi de Dim - Déclarer toutes les variables en les typant - Mettre Option Explicit en tête de Form - Lire exhaustivement la doc de Winsock - Consulter du code existant utilisant winsock
Si tu suis ces 5 conseils, tous tes problèmes se règleront comme par magie :-)
N'hésite pas après avoir suivi ces 5 étapes à revenir poser des questions!
Amicalement,
-- Jean-marc
<john.ambou@free.fr> wrote in message
>news:1150792726.160078.66950@g10g2000cwb.googlegroups.com...
..
Avez vous une solution a me proposer ?
Hello,
il me semble que le plus raisonnable est de commencer par
lire un bon livre sur VB puis de lire la documentation en
ligne.
La plupart de tes problèmes viennent simplement d'un mauvais
usage du langage.
Exemple, pris dans ton code:
Dim buffer1
msgbox buffer1(3)
1) déclarée comme cela, buffer1 est un variant
tu essaies d'accéder à l'élément 3, ce qui ne va pas.
tu as donc une erreur "Out of range"
Version correcte:
Dim buffer1(4) as Byte
msgbox Buffer1(3)
Toutes tes erreurs sont du même genre, donc:
- lire la doc pour voir l'emploi de Dim
- Déclarer toutes les variables en les typant
- Mettre Option Explicit en tête de Form
- Lire exhaustivement la doc de Winsock
- Consulter du code existant utilisant winsock
Si tu suis ces 5 conseils, tous tes problèmes se
règleront comme par magie :-)
N'hésite pas après avoir suivi ces 5 étapes à revenir
poser des questions!
il me semble que le plus raisonnable est de commencer par lire un bon livre sur VB puis de lire la documentation en ligne.
La plupart de tes problèmes viennent simplement d'un mauvais usage du langage.
Exemple, pris dans ton code:
Dim buffer1
msgbox buffer1(3)
1) déclarée comme cela, buffer1 est un variant tu essaies d'accéder à l'élément 3, ce qui ne va pas. tu as donc une erreur "Out of range"
Version correcte: Dim buffer1(4) as Byte
msgbox Buffer1(3)
Toutes tes erreurs sont du même genre, donc: - lire la doc pour voir l'emploi de Dim - Déclarer toutes les variables en les typant - Mettre Option Explicit en tête de Form - Lire exhaustivement la doc de Winsock - Consulter du code existant utilisant winsock
Si tu suis ces 5 conseils, tous tes problèmes se règleront comme par magie :-)
N'hésite pas après avoir suivi ces 5 étapes à revenir poser des questions!