Requeter un serveur quake (1,2 ou 3)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 786 fois - Téléchargée 45 fois

Contenu du snippet

pour recuperer la ligne de status d'un serveur Quake et pouvoir creer son propre Spy

Source / Exemple :


'ca dans une form contenant un ctrl winsock , un bouton et un timer

Option Explicit
Dim Flag As Integer
Dim ReceptData As String
Dim Tempo As Integer
Dim RequeteS As String
Dim Requete as string

Function Send(Ip As String, Port As String, Requete As String, delais As Integer)
RequeteS = Requete
ReceptData = vbNullString
Flag = 1
Timer1.Interval = delais
On Error Resume Next
Winsock1.Protocol = sckUDPProtocol
Winsock1.RemoteHost = Ip
Winsock1.RemotePort = Port
Winsock1.SendData Requete
Do
DoEvents
Loop Until Flag = 0
Send = ReceptData
End Function

Private Sub Command1_click()
Requete = chr$(255) & chr$(255) & chr$(255) & chr$(255) & "status" & chr$(13)
'remplacer "status" par "getstatus pour un serveur Q3 
msgbox Send("195.154.233.211","27910", Requete, 300)
End Sub

Private Sub Timer1_Timer()
On Error Resume Next
Tempo = Tempo + 1
If ReceptData <> vbNullString Then Exit Sub
Select Case Tempo
Case 3
Winsock1.SendData RequeteS
Case 6
Timer1.Interval = 0
Tempo = 0
Flag = 0
End Select
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
If bytesTotal > 2 Then
Winsock1.GetData ReceptData
Timer1.Interval = 0
Tempo = 0
Flag = 0
End If
End Sub

Conclusion :


dans la commande timer on renouvelle la requete au bout de delais (ben oui les serveurs n'ont pas que ca a faire que de repondre au request, donc on les persecutes pour etre plus sur :-)

pensez a metre le ctrl winsock en UDP. Si le serveur est introuvable ou ne repond pas, le msgbox sera kan meme renoyé mais il ne contiendra que dalle (Receptdata = vbnullstring)

A voir également

Ajouter un commentaire

Commentaires

bobjay
Messages postés
66
Date d'inscription
mercredi 19 mai 2004
Statut
Membre
Dernière intervention
1 avril 2007
-
Super !!!
Que dis-je, génial, magnifique...
Un code court, simple à comprendre et efficace !
Je développe un utilitaire pour un mod de wolfenstein (basé sur le moteur de Q3), cette source m'a permis de gagner énormément de temps, merci beaucoup Billyoctet ;)
Utilisateur anonyme -
Joli boulot billyoctet !!!
Merci bcp pour ce bout de code
Par contre ca a l'air super chiant de traiter les donnees afin de les afficher proprement :/

Bonne continuation
billyoctet
Messages postés
8
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
24 novembre 2007
-
ha vi la fenetre commentaire est un peut petite ... je met donc un screen plus explicite ...
billyoctet
Messages postés
8
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
24 novembre 2007
-
ca : apres suffit de decouper
ÿÿÿÿprint
Q2Admin1.18 betamapnameq2dm1privatesv_botdetection7stdlogfile
eedpassgamedateMar 27 1999gamenameQuake2 Battleground v1.38-irc#jolt on quakenet-urlwww.jolt.co.uk-adminManic Minerhostnamejolt.co.uk - Q2 Battlemaxclients11protocol34cheats imelimit20fraglimitdmflags1392deathmatch1version3.20 i386 Oct 14 1998 Linuxgamedirattlegameattle
4 145 "Steele"
10 38 "Player"
4 152 "[RFH] Inferno"
2 202 "Banshee"
1 244 "Rhodes"
0 305 "JonGu"
blackwizzard
Messages postés
1277
Date d'inscription
mercredi 21 mars 2001
Statut
Modérateur
Dernière intervention
21 juin 2009
2 -
et dans le Winsock1_DataArrival, on recoit kel genre de message?
(je sais, je pourrais essayer mais G la fleme de lancer VB...)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.