Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 12:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[AutoIT] Frage - TCP Sockets

Discussion on [AutoIT] Frage - TCP Sockets within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
elite*gold: 40
Join Date: Dec 2007
Posts: 651
Received Thanks: 1,737
[AutoIT] Frage - TCP Sockets

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
Ap0kalyps3 is offline  
Old 10/05/2010, 18:53   #2
 
elite*gold: 243
Join Date: Nov 2009
Posts: 2,491
Received Thanks: 1,067
Muss man das Paket nicht komplett mit ASCII konvertieren, also die Buchstaben alle einzelnd?

Dann sollten doch nur Zahlen rauskommen, oder hab ich das falsch verstanden..?
.KKS is offline  
Old 10/05/2010, 19:07   #3

 
elite*gold: 40
Join Date: Jul 2010
Posts: 950
Received Thanks: 318
Apo pn mich ma mit icq number kann dir helfen wills aber ned öffentlich
R0bo7 is offline  
Old 10/05/2010, 19:08   #4
 
elite*gold: 40
Join Date: Dec 2007
Posts: 651
Received Thanks: 1,737
Quote:
Originally Posted by Blackiii...x3 View Post
Muss man das Paket nicht komplett mit ASCII konvertieren, also die Buchstaben alle einzelnd?

Dann sollten doch nur Zahlen rauskommen, oder hab ich das falsch verstanden..?
Soweit ich weiß eig. nicht.
In PHP gehts ja auch so ...

Mhm..
Ap0kalyps3 is offline  
Old 10/05/2010, 19:57   #5
 
elite*gold: 1
Join Date: Apr 2010
Posts: 117
Received Thanks: 56
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...
DocWolf is offline  
Old 10/05/2010, 20:00   #6
 
elite*gold: 1
Join Date: Aug 2010
Posts: 1,300
Received Thanks: 524
frag doch einfach im nach...
KingZuck is offline  
Old 10/05/2010, 21:27   #7
 
Imaginär's Avatar
 
elite*gold: 255
Join Date: Nov 2009
Posts: 2,900
Received Thanks: 1,408
Was für ein lustiger Zufall!

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 )

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
Imaginär is offline  
Old 10/05/2010, 22:31   #8
 
elite*gold: 1
Join Date: Apr 2010
Posts: 117
Received Thanks: 56
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...
DocWolf is offline  
Reply




All times are GMT +1. The time now is 12:47.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.