Requeter un serveur quake (1,2 ou 3)

0/5 (5 avis)

Snippet vu 4 226 fois - Téléchargée 48 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
16 sept. 2005 à 02:48
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
30 avril 2004 à 16:13
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
22 déc. 2001 à 13:48
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
22 déc. 2001 à 13:46
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 1258 Date d'inscription mercredi 21 mars 2001 Statut Membre Dernière intervention 21 juin 2009 2
22 déc. 2001 à 12:44
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.