![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| VB 6 et antérieur Visual basic 6 et versions antérieures. Avant de poster -> La FAQ VB6, Les tutoriels VB |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
Bonjour à tous
Alors voilà, je suis motivé pour apprendre à me servir de ce controle pour la simple et bonne raison que mes méthodes sont trop limités. D'habitude, pour envoyer/recevoir des données, je fais ça à ma manière (Upload fichier text sur ftp, ou récupération de données sur une page web) et par conséquent, l'appli est sans cesse en actualisation pour télécharger les données, c'est du n'importe quoi. Dans ce topic : http://www.developpez.net/forums/d62...nt-personnage/ j'ai réussi à mettre en mouvement des petits personnages, mais j'aimerai savoir comment faire pour que ca soit visible par tous les utilisateurs, autrement dit, on revient au MMORPG. Comment sauvegardé les déplacements qu'a effectué telle personne avec le personnage par exemple, envoyer les données instantanément, afin que les utilisateurs qui seront à ce moment là "spectateurs" voient les déplacements. Donc voilà, je pense que je laisserai ouvert ce topic un certains temps pour pouvoir bien experimenter la chose, je compte sur votre aide ;p Merci d'avance !! [edit] : Je suis en train d'étudier ce controle, donc si vous avez des conseils ou des precisions à m'apporter, je suis prenneur =D
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
|
|
|
|
|
|
#2 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
[edit] Autant pour moi, petite erreur de synthèse...^^
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
Dernière modification par Ramdoulou ; 09/11/2008 à 14h32 |
|
|
|
|
|
#3 (permalink) |
![]() |
bonjour, Ramdoulou ..
tu as bien évidement commencé par lire les tutos : Créer un client mail avec le contrôle Winsock Série de tutoriels consacrée à la programmation réseau bonne étude
__________________
bbil : Impératif "A LIRE AVANT DE POSTER" |
|
|
|
|
|
#4 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
Je vais étudier tout ça, merci =)
J'ai déjà réussi à effectuer une connexion entre 2 pc (client / server), et à récupérer des données par exemple dans des textbox etc... j'avance lentement, mais surement, merci pour ton aide =)
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
|
|
|
|
|
|
#5 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
J'ai un petit probleme de synthèse dans le code suivant :
Code :
Private Sub tcpServer_ConnectionRequest _ (Index As Integer, ByVal requestID As Long) If Index = 0 Then intMax = intMax + 1 Load tcpServer(intMax) tcpServer(intMax).LocalPort = 0 tcpServer(intMax).Accept requestID Load txtData(intMax) End If ' Vérifie que le contrôle est fermé. Sinon, ferme ' la connexion en cours avant d'accepter la ' nouvelle. If tcpServer.State <> sckClosed Then _ tcpServer.Close ' Accepte la demande avec le paramètre requestID. tcpServer.Accept requestID End Sub que la déclaration de procédure ne correspond pas à la description de l'évenement ou de la procédure du même nom. Jsuis persuadé que ca concerne"(Index as Integer)" mais pourquoi ? =o
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
|
|
|
|
|
|
#6 (permalink) |
![]() |
syntaxe pas synthèse;..
C'est qu'ici tcpServer désigne un groupe de contrôle WinSock ..., met la propriété index à 0 de ton contrôle WinSock
__________________
bbil : Impératif "A LIRE AVANT DE POSTER" |
|
|
|
|
|
#7 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
Oui syntaxe raaah ce mot a du mal à passer ^^
Merci =) Mais maintenant ca me le fait avec Code :
Private Sub tcpServer_DataArrival _ (ByVal bytesTotal As Long) Code :
Private Sub tcpServer_DataArrival _ (ByVal bytesTotal As Long) ' Déclare une variable pour les données reçues. ' Invoque la méthode GetData et paramètre pour ' ces données la propriété Text d'un contrôle ' TextBox nommé txtOutput. Dim strData As String tcpServer.GetData strData txtOutput.Text = strData End Sub
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
|
|
|
|
|
|
#8 (permalink) |
![]() |
ben la c'est Index qui te manque.. je ne sais pas à partir de quoi tu "étudie" mais cela semble être une gestion de multiple connexion un serveur, avec plusieurs clients.. et pour chaque clients un contrôle WinSock serveur , membre de ton groupe de contrôle..
__________________
bbil : Impératif "A LIRE AVANT DE POSTER" |
|
|
|
|
|
#9 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
C'est bon c'est résolue, jsuis en train de resoudre d'autres ptits problemes =)
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
Dernière modification par Ramdoulou ; 09/11/2008 à 17h43 |
|
|
|
|
|
#10 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
Alors enfaite j'ai pas mal de problemes...
Niveau Syntaxe, jcomprend pas trop : "Load txtData(intMax)" et ça me pose un probleme "Procédure ou fonction non définie" Et ensuite, jme suis aperçu que si je supprimais cette ligne, la connexion se faisait, mais sur ce meme pc (où il y a le server), quand je tappe un truc ca marche, si jme met sur un autre pc en meme temps, ca marche aussi, mais si je retourne sur celui la, je tappe un truc et ça efface tout =s Donc vla, si quelqu'un peut me dire ce qui cloche dans mon code ça serait sympa =D Code :
Private intMax As Long Private Sub Form_Load() intMax = 0 tcpServer(0).LocalPort = 1001 tcpServer(0).Listen ' Donne à la propriété LocalPort une valeur ' entière. Puis invoque la méthode Listen. 'tcpServer.LocalPort = 1001 'tcpServer.Listen ' Affiche la feuille client. 'frmClient.Show End Sub Private Sub txtSendData_Change() ' Le contrôle TextBox nommé txtSendData contient ' les données à envoyer. Chaque fois que l'utilisateur entre du ' texte dans le contrôle textbox, la chaîne est envoyée en ' utilisant la méthode SendData. tcpServer(intMax).SendData txtSendData.Text End Sub Private Sub tcpServer_DataArrival _ (Index As Integer, ByVal bytesTotal As Long) ' Déclare une variable pour les données reçues. ' Invoque la méthode GetData et paramètre pour ' ces données la propriété Text d'un contrôle ' TextBox nommé txtOutput. Dim strData As String tcpServer(intMax).GetData strData txtOutput.Text = strData End Sub Private Sub tcpServer_ConnectionRequest _ (Index As Integer, ByVal requestID As Long) If Index = 0 Then intMax = intMax + 1 Load tcpServer(intMax) tcpServer(intMax).LocalPort = 0 tcpServer(intMax).Accept requestID 'Load txtData(intMax) End If ' Vérifie que le contrôle est fermé. Sinon, ferme ' la connexion en cours avant d'accepter la ' nouvelle. 'If tcpServer.State <> sckClosed Then _ 'tcpServer.Close ' Accepte la demande avec le paramètre requestID. 'tcpServer.Accept requestID End Sub
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
|
|
|
|
|
|
#11 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
Apres avoir effectué quelques tests, jme rend bien compte que ya un ptit soucis dans mon code précédent, car au final c'est toujours un tchat à 2...si ya plus, ben au lieu d'afficher ce que j'ecris, ca efface tout carrement =s
Mais vraiment jcomprend pas ce que signifie : "Load txtData(intMax)" Ca charge quoi ? J'ai essayé de remplacer txtdata par txtsenddata (le nom du textbox du server dans lequel on tappe le texte, mais ca marche pas...
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
|
|
|
|
|
|
#12 (permalink) |
![]() |
on ne voit pas tout ton code, mais j'ai l'impression que tu gère mal ton index :
dans la procédure évènementielle : Code :
Private Sub tcpServer_DataArrival _ (Index As Integer, ByVal bytesTotal As Long) et avec Code :
tcpServer(intMax).GetData strData
__________________
bbil : Impératif "A LIRE AVANT DE POSTER" |
|
|
|
|
|
#13 (permalink) |
![]() |
Load txtBox(NumeroTextBox) permet de charger à la volée un nouveau controle du meme type que txtBox, ce nouveau controle héritera de tous les propriétés et les metodes du txtBox que tu as placé sur ta feuille.
Il faut donc au départ, placer un txtBox sur ta feuille et, pour pouvoir en avoir plusieurs, lui donner 0 dans la propriété index. A partir de la là, il est possibe de faire un clone du txtBox a l'aide de la méthode Load . Il faudra aussi donner à la methode load, un numéro d'index qui n'aura pas encore été utilisé. Exemple: Load txtBox(1) créera un nouveau txtBox dont la propriété index sera 1 Si le numéro est dèjà utilisé > boom pour acceder aux propriétés individuelles de ce txtBox, on fera txtBox(1).propriété = valeur Dans ton code tu verra que les procédure événement du txtBox de départ ont un paramètre de plus : Index As Integer. Qunad l'évement se declenche, il suffit de vérifier cet Index pour savoir quel clone à déclenché l'evénement.
__________________
En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés (ALEXANDRE DUMAS) N'hésitez pas à visiter ma page de contributions |
|
|
|
|
|
#14 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2006
Localisation: France
Âge: 16
Messages: 224
|
Merci beaucoup pour cette explication !
Donc txtData doit correspondre logiquement à quel textbox ? Celui où l'on peut ecrire dedans pour que tous les utilisateurs ayant le client de lancé voient ce qu'il y a d'ecrit ? Ou pour le textbox d'affichage de ce qu'il y a d'ecrit ? Et autre chose, pourquoi "cloner" un textbox sans l'autre, et pourquoi cloner tout simplement ? Pour faire en sorte que plusieurs connexions soient faisables, il devrait y avoir que le Winsock à cloner non ? Suis-je à côté de la plaque, ou sur la bonne voie ? Merci d'avance Bbil : Comment je dois faire alors pour que ca soit le même oO car j'ai beau essayer de créer des variables ayant differentes fonctions, j'obtiens pas de resultat =/
__________________
Code :
Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?
|
|
|
|
|
|
#15 (permalink) | |
![]() |
Citation:
Code :
Et autre chose, pourquoi "cloner" un textbox
__________________
En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés (ALEXANDRE DUMAS) N'hésitez pas à visiter ma page de contributions |
|
|
|
|
|
![]() |
![]() |
||
Etude, théorie et pratique du controle winsock
|
||
| Outils de la discussion | |
|
|