[AutoIT] Frage - TCP Sockets

10/05/2010 18:27 Ap0kalyps3#1
Nachdem ich das Paket Tool für die API Befehle nun in PHP fertig habe, habe ich mit westside gewettet, das ich das ganze auch in AutoIT schaffe.. ^^

Leider ist es da nicht so einfach wie erwartet und ich hänge nun an einem Punkt wo ich selbst keinen Rat mehr weiß.

In PHP versende ich meine Packets folgendermaßen;

PHP Code:
    $socket socket_create (AF_INETSOCK_STREAMSOL_TCP);
    
$result socket_connect ($socket$IP$Port);

        
$query "\x40SHOWMETHEMONEY\x0A\x40EVENT xmas_boom 0\x0A";
        
        
$write_res socket_write($socket$query$query_size);
        
$recv_res socket_recv($socket$output50560); 

Nun, meinen AutoIT abschnitt;

Code:
	TCPStartup()

	$socket = TCPConnect($ip, $port)

	If $socket = -1 Then
		MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!")
	EndIf

	$sendedBytes = TCPSend($socket, "\x40SHOWMETHEMONEY\x0A\x40EVENT xmas_boom 0\x0A")

	If $sendedBytes = 0 Then
		MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.")
	EndIf

	TCPCloseSocket($socket)
	TCPShutdown()

Leider passiert Ingame trotz TCPSend nichts.
Den Query Text, der ausgeführt wird habe ich schon 1000000 mal verändert weil ich dachte es liegt evtl. daran und ich denke immernoch, das es an den ASCII Zeichen liegt, die dort mit Übergeben werden (\x40, \x0A).

Nun wäre meine Frage, liegt es wirklich daran oder habe ich irgendwo einen anderen Fehler gemacht, den ich nicht sehe?

Bzw wie kann ich die ASCII Zeichen sonst übergeben?
\x40 könnte man evtl auch als @ ausschreiben (sicher bin ich mir da aber auch nicht), aber bei \x0A wirds dann schon kritisch, da das kein Zeichen an sich ist..

In PHP habe ich ausserdem die möglichkeit die Antwort, die ich auf das Paket bekomme auszugeben. Geht das in AutoIT auch?


Ich freue mich über jede konstruktive Antwort.

Gz,
Ap0
10/05/2010 18:53 .KKS#2
Muss man das Paket nicht komplett mit ASCII konvertieren, also die Buchstaben alle einzelnd?
[Only registered and activated users can see links. Click Here To Register...]
Dann sollten doch nur Zahlen rauskommen, oder hab ich das falsch verstanden..?
10/05/2010 19:07 R0bo7#3
Apo pn mich ma mit icq number kann dir helfen wills aber ned öffentlich
10/05/2010 19:08 Ap0kalyps3#4
Quote:
Originally Posted by Blackiii...x3 View Post
Muss man das Paket nicht komplett mit ASCII konvertieren, also die Buchstaben alle einzelnd?
[Only registered and activated users can see links. Click Here To Register...]
Dann sollten doch nur Zahlen rauskommen, oder hab ich das falsch verstanden..?
Soweit ich weiß eig. nicht.
In PHP gehts ja auch so ...

Mhm..
10/05/2010 19:57 DocWolf#5
Ich bin mir nicht 100% sicher aber ich glaube mit "TCPRecv" kann man auf die Antwort des Servers warten...

Wie gesagt ich hab mich damit nicht so lange beschäftigt , also belehrt mich wenn es falsch ist...
10/05/2010 20:00 KingZuck#6
frag doch einfach im [Only registered and activated users can see links. Click Here To Register...] nach...
10/05/2010 21:27 Imaginär#7
Was für ein lustiger Zufall! :D

Habe heute genau mit dem gleichen Thema angefangen - Verarbeitung der Packete in Autoit :)


Bin gerade eig. genauso weit wie du:


Quote:
$sendedBytes = TCPSend($socket, "\x40SHOWMETHEMONEY\x0A\x40EVENT xmas_boom 0\x0A")
wird wohl einfach nur als Msg ausgegeben und nicht als "richtiges" Packet.
(so 'nen messenger gibt's ja schon [Only registered and activated users can see links. Click Here To Register...] )

Ich melde mich, falls du noch Hilfe brauchst &' ich was neues habe.

Achja wegen:
In PHP habe ich ausserdem die möglichkeit die Antwort, die ich auf das Paket bekomme auszugeben. Geht das in AutoIT auch?

Es gibt die Funktion "TCPRecv()", vllt. kannste ja mit der was anfangen :)
10/05/2010 22:31 DocWolf#8
EDIT: Ich habs geschafft ... Wenn ihr wissen wollt wie dann schreibt mir ne PN und morgen erkläre ich es euch in aller Ruhe (durch Krankheit zu Hause und viel Zeit...>.<) wenn ihr sehr schnell seit heute noch...