Ich habe mir ein kleinen gameserverbrowser gebastelt. Nun hab ich aber probleme mit UDPRecv, bei manchen servern funktioniert es und bei manchen nicht. ABER bei den servern bei denen es nicht funktioniert kann ich mit Wireshark nachweisen das die entsprechende antwort (serverstatus etc.) empfangen wurde, aber wieso liest autoit diese nicht ???
(in dem script sind 2 beispiel ip's und ports, die eine funktioniert, die andere nicht)
#include <String.au3>
#include <array.au3>
Dim $A2S_SERVERQUERY_GETDATA = _HexToString('5c7374617475735c00')
Dim $getdata
$s_ip = '81.19.219.217' ; bei dem server funktioniert es
$s_port = "27888" ; bei dem server funktioniert es
;~ $s_ip = "69.125.2.214" ; bei dem server funktioniert es nicht
;~ $s_port = "27890" ; bei dem server funktioniert es nicht
UDPStartup()
$socket = UDPOpen($s_ip,$s_port)
UDPSend($socket,$A2S_SERVERQUERY_GETDATA)
$getdata = UDPRecv($socket,999999)
$getdata = BinaryToString($getdata)
ConsoleWrite(@CRLF & $getdata & @CRLF)
UDPCloseSocket($socket)
UDPShutdown()
$ahostname = _StringBetween($getdata,'\hostname\','\')
$hostname = _ArrayToString($ahostname)
MsgBox(0,'Server Name',$hostname)