Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 08:57

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

Advertisement



[AutoIt] TCP Tutorial

Discussion on [AutoIt] TCP Tutorial within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old 06/07/2011, 21:45   #31
 
elite*gold: 60
Join Date: Apr 2008
Posts: 99
Received Thanks: 10
*** ist ein relativ altes TuT aber ändert ja nix am Inhalt^^
b2t ist das Tut richtig nice. Hab da vllt nen kleinen Makel gefunden. Sollte bei den Fehlermeldungen im Client nicht ein Exit hin da sonst der Code ja tdm weiter abgearbeitet wird obwohl ein Fehler auftrat?

Ach und kannst du mir vllt genauer erklären was es mit IP und Port auf sich hat? Sagen wir ich habe ne AutoIt GUI mit nem Textfeld. Dort gebe ich i-einen Text ein und der soll dann in nem Thread hier gepostet werden. Wie komme ich an die IP und an den Port den ich brauche?
animeprince is offline  
Thanks
1 User
Old 06/07/2011, 22:25   #32


 
Ende!'s Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 6,378
Received Thanks: 7,996
Quote:
Originally Posted by animeprince View Post
Jap ist ein relativ altes TuT aber ändert ja nix am Inhalt^^
b2t ist das Tut richtig nice. Hab da vllt nen kleinen Makel gefunden. Sollte bei den Fehlermeldungen im Client nicht ein Exit hin da sonst der Code ja tdm weiter abgearbeitet wird obwohl ein Fehler auftrat?
Ja, eigentlich schon. Ich bin jetzt aber offen gesagt zu lazy das Ganze zu editen Hab seit über 'nem Jahr eigentlich nichts mehr mit Au3 am Hut. Dennoch danke für den Hinweis.

Quote:
Originally Posted by animeprince View Post
Ach und kannst du mir vllt genauer erklären was es mit IP und Port auf sich hat? Sagen wir ich habe ne AutoIt GUI mit nem Textfeld. Dort gebe ich i-einen Text ein und der soll dann in nem Thread hier gepostet werden. Wie komme ich an die IP und an den Port den ich brauche?
Die IP könntest du z.B. bekommen, indem du in der cmd den Befehl "ping elitepvpers.com" eingibst. Nur wird das bei e*pvp nicht klappen, da der DDoS Filter den Ping nicht durchlassen wird ;p Aber du kannst einfach einfach die IP per DNS-Auflösung zur Laufzeit holen. Schau dir mal die Funktion TCPNameToIp an (so hieß sie, wenn ich das recht in Erinnerung habe). HTTP Standard-Port ist 80.
Ende! is offline  
Old 06/08/2011, 11:43   #33
 
elite*gold: 60
Join Date: Apr 2008
Posts: 99
Received Thanks: 10
Quote:
Originally Posted by Ende! View Post
Ja, eigentlich schon. Ich bin jetzt aber offen gesagt zu lazy das Ganze zu editen Hab seit über 'nem Jahr eigentlich nichts mehr mit Au3 am Hut. Dennoch danke für den Hinweis.
Faule Socke =D
Was machste denn stattdessen? Ich bin immer offen für neues^^


Quote:
Originally Posted by Ende! View Post
Aber du kannst einfach einfach die IP per DNS-Auflösung zur Laufzeit holen.
Hmm~ Das musst du mir mal näher erläutern^^'



€DIT:
Also ich möcht in AutoIt ein Programm zum SMS versenden schreiben (naja eig. so ne Art SMS Bomber aber ma sehen xD). Dazu werde ich eine GUI erstellen mit einem Eingabefeld für die Handynummer und wieviele SMS verschickt werden sollen. Außerdem ein Drop Down Menü zum Auswählen des Landes (da man das bei dem Anbieter den ich gewählt habe auswählen muss). Das erstmal zum groben was nichts mit dem Thema zu tun hat. Nun aber zum TCP. Undzwar will ich im Hintergrund die Daten an den Anbieter (Server) senden, also die Handynummer und das Land und dann versenden. Problematisch wird die Eingabe des Captchas (ne Idee wie ich das hinbekomme?)... Das dann halt so oft wie eingestellt wurde (am besten über Proxy)...
Hört sich kompliziert an aber vllt kannste ja helfen =D
animeprince is offline  
Old 06/08/2011, 14:29   #34


 
Ende!'s Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 6,378
Received Thanks: 7,996
Quote:
Originally Posted by animeprince View Post
Faule Socke =D
Was machste denn stattdessen? Ich bin immer offen für neues^^
C++

Quote:
Originally Posted by animeprince View Post
Hmm~ Das musst du mir mal näher erläutern^^'
Code:
$ip = TCPNameToIp("elitepvpers.com")
Ende! is offline  
Old 06/08/2011, 21:30   #35
 
elite*gold: 60
Join Date: Apr 2008
Posts: 99
Received Thanks: 10
Ahh ja C++ hab ich einmal mit angefangen aber i-wie... kP ich glaub da war ich noch zu neu für xDD AutoIt Begriffe sind ja einfach nur easymode^^

Ahh auch wenn das weniger erläutert war meine ichs verstanden zu haben xP

Haste mein Edit oben absichtlich übersehen? xD
animeprince is offline  
Old 06/13/2011, 15:24   #36
 
Jay Niize's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 4,851
Received Thanks: 3,417
Alt aber genial. Aber wie kann ich über TCP Daten, bzw. Pakete senden? :O

Edit : In VB is es ja dieser Befehl :
Quote:
Imports System.Net
Imports System.Net.Sockets

Dim sroSocket As Socket

//Connect to phConnector:
sroSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

Dim IP As IPAddress = IPAddress.Parse("127.0.0.1")
Dim Port As Integer = 22580
Dim IPEP As IPEndPoint = New IPEndPoint(IP, Port)

sroSocket.Connect(IPEP)

//Sub to send a packet:
Sub SendPacket(ByVal OpCode As String, ByVal sData As String)
Using buffer As New IO.MemoryStream
Using w As New IO.BinaryWriter(buffer)
w.Write(CUShort(0))
w.Write(CUShort("&H" + OpCode))
w.Write(CUShort(1))

For i = 0 To sData.Length / 2 - 1
w.Write(CByte("&H" & sData.Substring(i * 2, 2)))
Next

w.BaseStream.Position = 0
w.Write(CUShort(w.BaseStream.Length - 6))
w.Flush()

sroSocket.Send(buffer.ToArray)
End Using
End Using
End Sub

//Call the SendPacket-Sub:
SendPacket("YourOpCode", "YourData")
Jay Niize is offline  
Old 06/13/2011, 18:14   #37
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Von einem Epvpers user (weiß aber nicht mehr von wem)
Zwar nie wirklich getestet, aber sollte gehen...


Client:
PHP Code:

;==== CLIENT ====;

Global 
$IP IniRead(@ScriptDir "\options.ini""Connection""IP""127.0.0.1")     ;IP wird aus der ini gelesen
Global $Port IniRead(@ScriptDir "\options.ini""Connection""Port""4949")      ;Port wird aus der ini gelesen
Global $MaxLen IniRead(@ScriptDir "\options.ini""Connection""MaxLen""2048")  ;Maximale Bitrate wird aus der ini gelesen

TCPStartup
()

$Connect MsgBox(0x21"INFO""Mit Server verbinden?")
If 
$Connect 2 Then
    TCPShutdown
()
    Exit
EndIf

MsgBox(0x40"INFO""Verbinde nun mit Server")

_connect()


Func _connect()
    
$MainSocket TCPConnect($IP$Port)
    If 
$MainSocket = @error Then
        $Error 
MsgBox(0x15,"ERROR","Konnte nicht mit Server verbinden."&@CR&"Bitte überprüfen Sie die Einstellungen."&@CR&"Noch einmal versuchen?")
        if 
$Error 2 Then
            TCPCloseSocket
($MainSocket)
            
TCPShutdown()
            Exit
        ElseIf 
$Error 4
            TCPCloseSocket
($MainSocket)
            
_connect()
        EndIf
    EndIf
    Do
        
$get TCPRecv($MainSocket,$MaxLen)
    
Until $get <> ""

    
Do
        
$get_FileName TCPRecv($MainSocket,$MaxLen)
    
Until $get_FileName <> ""
    
$FileName BinaryToString(StringRight($get_FileName,Dec(StringLeft($get_FileName,10))))
    Do
        
$get_FileSize TCPRecv($MainSocket,$MaxLen)
    
Until $get_FileSize <> ""
    
$FileSize Dec(StringLeft($get_FileSize,10))
    If 
$get "0x" StringToBinary("DATEI"Then
        $yes_no 
MsgBox(0x44,"INFO","Der Server möchte eine Datei senden."&@CR&"Name : "&$FileName&@CR&"Größe : "&$FileSize&@CR&"Annehmen?")
        if 
$yes_no 6 Then
            TCPSend
($MainSocket,"0x"&Hex(2)&BinaryToString("OK"))
            
$File FileSaveDialog("Datei speichern als",@DesktopDir,"Alle (*.*)")
            
$open FileOpen($File,2)
            
FileWrite($open,TCPRecv($MainSocket,$MaxLen))
            
FileClose($open)
            
MsgBox(0x40,"INFO","Datei wurde empfangen")
            
Run("explorer.exe /"&StringReplace($File,$FileName,""))
        ElseIf 
$yes_no 7 Then
            TCPSend
($MainSocket,"0x"&Hex(2)&BinaryToString("NO")
            
TCPCloseSocket($MainSocket)
            
TCPShutdown()
            Exit
        EndIf
    EndIf
EndFunc   ;==>_connect 
Server:
PHP Code:
;==== SERVER ====;

#include <INet.au3>

TCPStartup()

Global 
$IP _GetIP() ; ermittelt über DynDNS die IP
Global $PORT 4949
Global $MaxLen 2048 ;Maximale Speed die benutzt werden darf (ACHTUNGBENUTZT BEI ZU VIEL DIE GANZE LEITUNG)

$MainSocket TCPListen($IP$PORT1)

MsgBox(64"INFO""Es gibt folgende DreiSchritte:" & @CR "1.Datei Auswählen" & @CR "2.Verbindung zum Cient herstellen" & @CR "3.Datei senden")

$File FileOpenDialog("Bitte wählen sie die Datei aus", @DesktopDir"All (*.*)")

Do
    
$NewSocket TCPAccept($MainSocket)
Until $NewSocket >= 0
TCPSend
($NewSocket"0x" StringToBinary("DATEI"))
TCPSend($NewSocket"0x" Hex(StringLen(FileGetLongName($File))) & StringToBinary(FileGetLongName($File)))
TCPSend($NewSocket"0x" Hex(FileGetSize($File)))
Do
    
$get TCPRecv($NewSocket$MaxLen)
Until $get <> ""

If $get "0x"&Hex(2)&BinaryToString("OK"Then
    MsgBox
(64,"INFO","Datei wurde von Gegenstelle angenommen")
    
TCPSend($NewSocket,$File)
    
MsgBox(64,"INFO","Die Datei wurde gesendet")

ElseIf 
$get "0x"&Hex(2)&BinaryToString("NO"Then
    MsgBox
(64,"INFO","Datei wurde von Gegenstelle angenommen")
    
TCPCloseSocket($NewSocket)
    
TCPCloseSocket($MainSocket)
    
TCPShutdown()
    Exit
EndIf 
omer36 is offline  
Old 09/11/2011, 12:49   #38
 
elite*gold: 0
Join Date: Jun 2011
Posts: 125
Received Thanks: 47
Hab mal die script ein bissle überarbeitet und eine gui hinzugefügt:

Server:
PHP Code:
TCPStartup() ; TCP wird initialisiert

$mainsocket 
TCPListen("0"4321) ; Den mainsocket erstellen

While Endlosschleife 
    $acceptedSocket 
TCPAccept($mainsocket) ; Wir versuchen eine möglicher Verbindung anzunehmen
    
    
If $acceptedSocket <> -1 Then Wenn $acceptedSocket ungleich -1 ist, ...
        
$receivedData TCPRecv($acceptedSocket1024) ; Wenn eine Socketverbindung hergestellt wurdeempfange ein Paket vom Client ($connectedSocket)
        If 
Not $receivedData "" Then
         MsgBox
(64"Nachricht empfangen"$receivedData)
        
TCPCloseSocket($acceptedSocket)
        EndIf
    EndIf
WEnd 
Client:
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$_1 GUICreate("Text to send"518270192124)
$text GUICtrlCreateInput("Hi. Dieser Text wurde vom Client gesendet"641643321)
$Button1 GUICtrlCreateButton("Senden"39220811349)
$status GUICtrlCreateLabel("Drücken sie Verbinden"1620020520)
$ip GUICtrlCreateInput(""644043321)
$Label1 GUICtrlCreateLabel("Text:"32162817)
$Label2 GUICtrlCreateLabel("IP:"40401717)
$Button2 GUICtrlCreateButton("Verbinden"25620811349)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            _Func1 
()
        Case 
$Button2
            _Func2 
()

    EndSwitch
    
$ipp GUICtrlRead($ip)
WEnd

Func    _Func1 
()      ;Hier wird eine Funktion gestartet und zwar die funktion die oben dem Button1 zugewiesen wurde
$textt 
GUICtrlRead($text)
$ipp GUICtrlRead($ip)

TCPStartup() ; TCP wird initialisiert
$socket 
TCPConnect($ipp4321) ; Versucht eine Verbindung zum Server aufzubauen und speichert die SocketID in "$socketab

If $socket = -1 Then Wenn $socket = -1 istFehlermeldung ausgeben
    MsgBox
(16"Error""Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
EndIf

$sendedBytes TCPSend($socket,$textt) ; Sendet den Text an unseren verbundenen Socket

If $sendedBytes 0 Then Wenn der Rückgabewert von TCPSend(...) 0 istFehlermeldung ausgeben
    MsgBox
(16"Error""Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
EndIf

If 
Not $ipp "" Then
    
If Not $textt "" Then
MsgBox
(64$ipp"'" $textt "'"&@CRLF"" &@CRLF"WURDE ABGESCHICKT") ; Fehlermeldung
EndIf
EndIf

TCPCloseSocket($socket)
TCPShutdown()  
EndFunc

Func    _Func2 
()
    
$ipp GUICtrlRead($ip)
    
TCPStartup() ; TCP wird initialisiert
    $socket 
TCPConnect($ipp4321) ; Versucht eine Verbindung zum Server aufzubauen und speichert die SocketID in "$socketab
    
If $socket = -1 Then Wenn $socket = -1 istFehlermeldung ausgeben
    $status 
=  GUICtrlCreateLabel("Keine Verbindung zum server"1620020520)
    
GUICtrlSetFont(-1108000"MS Sans Serif")
    
GUICtrlSetColor(-10xFF0000)
EndIf

If 
$socket > -1 Then Wenn $socket = -1 istFehlermeldung ausgeben
$ipp 
GUICtrlRead($ip)
$status =  GUICtrlCreateLabel("Verbunden mit " $ipp1620020520)
    
GUICtrlSetFont(-1108000"MS Sans Serif")
    
GUICtrlSetColor(-10x00FF00)

EndIf
TCPCloseSocket($socket)
TCPShutdown()  
EndFunc 
Incaner is offline  
Thanks
1 User
Old 01/22/2012, 13:34   #39
 
elite*gold: 0
Join Date: Jun 2008
Posts: 51
Received Thanks: 4
richtig hammer geiles TUT!!!
Danke! Hast ein Thanks verdient.
Anhangs Tuts wären jetzt auch noch super...
also bis dahin, dass man mit AutoIt (TCP) "Hacken" (Boten) kann. Also wie man richtig decodiert und dann die entsprechenden Befehle an den richtigen Server (z.B. Metin2 Server) sendet.
MrRobb is offline  
Old 01/22/2012, 14:21   #40
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Guck mal sieben Posts höher, da schreibt Ende! das er seit einem Jahr nichts mehr mit AutoIt zu tun hat und das ist beinahe sieben Monate her...
jacky919 is offline  
Thanks
2 Users
Old 01/22/2012, 18:08   #41
 
elite*gold: 0
Join Date: Jun 2008
Posts: 51
Received Thanks: 4
ich meine ja nicht, dass er die nächsten Tuts erstellen muss :P Wäre aber toll, wenn JEMAND das machen würde, der Ahnung davon hat
*schmoll*
MrRobb is offline  
Old 01/22/2012, 18:22   #42
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Nur wenn du sie "Anhangs" Tutorials nennst, hängen sie ja an irgenwem oder irgendetwas. In dem Falle an diesem Tutorial

Außerdem gibt's das im Grunde schon, z.B:


Vielleicht findest du etwas verwertbares..
jacky919 is offline  
Old 04/19/2012, 19:08   #43
 
H@CT0R's Avatar
 
elite*gold: 0
Join Date: Apr 2012
Posts: 1,214
Received Thanks: 153
Sehr gutes Tuturial, danke dafür! Habe vor ein paar Tagen mit AutoIT angefangen und bin begeistert, man kann mehr damit machen als ich anfangs erwartet hatte

Habe beim Durchgehen dieses Tuturials schon etwas mehr in server und client eingebaut, ein Eingabefeld in den Client um eine bestimmte Nachricht zu senden und in die server.au3, wenn diese Eingabe 'Exit' ist, dann wird der Server heruntergefahren

Nur eine Frage hätte ich, wie kann ich das ganze über verschiedene PC's machen? Also übers Internet sodass ein Chat daraus wird?
H@CT0R is offline  
Old 07/11/2012, 20:31   #44
 
elite*gold: 0
Join Date: Jul 2012
Posts: 1
Received Thanks: 0
Smile THX

sehr hiflreich
PUCKYPUCKY is offline  
Old 03/06/2013, 10:06   #45


 
dacx's Avatar
 
elite*gold: 558
The Black Market: 296/0/0
Join Date: Jan 2010
Posts: 22,776
Received Thanks: 10,538
Für TCPStartup() wird keine Include-Datei benötigt?
dacx is offline  
Reply

Tags
autoit, tcp, tutorial


Similar Threads Similar Threads
Autoit Tutorial
11/16/2010 - EO Exploits, Hacks, Tools & Macros - 4 Replies
Okay how to use autoit on EU demons. Okay to make a auto pill its very easy about four five lines.Okay so you always have to type While 1 Then you type Send and what you want it to type will be in the two ("{}"). So we have While 1 Send("{1}") then type how long it needs to sleep 1000+ So like Sleep(1000)
Autoit Tutorial
01/29/2008 - AutoIt - 4 Replies
Hallo Liebe Com ich hab hier in letzter zeit immer was von dem Prog AUTOIT gehört das Scripts ausführt. Da hätte ich ein paar fragen... I Ist Autoit Scripten Schwer? II Wie lange braucht man bis man Sagen kann Ja ok ich Kann Autoit scripten (mit ner norm.Lern geschwindigkeit)? III Was für Möglichkeiten Bieten Autoit Scripts? (Kann man nur z.b Tastatur Anschläge Programiern oder auch Mausklicks bzw z.b das scannen von Monstern in einem MMoG)? IV Kennt ihr Gute tuts wo man es Gut Erklärt...
AutoIt Tutorial
01/01/2008 - Dekaron - 2 Replies
Hey, smokedoo or someone out there who created bot and stuff like that, can you please post up a tutorial or vid on how to make at least the most simplest bot out there please. I know there are ppl like me that would just love to know. Thanks!



All times are GMT +1. The time now is 08:59.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.