Requeter un serveur quake (1,2 ou 3)

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

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.