Hallo liebe Community,
es gibt hier im Forum bereits ein Tutorial (), was sich teilweise mit TCP befasst und auch teile meiner Tutorials wiederfindet, allerdings denke ich doch, dass vor allem für die Leute die Tcp später regelmäßig nutzten wollen dieses Tutorial recht nützlich sein wird
Zu Beginn der Reihe beschäftigen sich die Tutorials mit den Grundlagen im Bereich von HTTP-Packete (sprich wie man per TCP eine Seite aufruft und Packet sendet usw.) ... An dieser Stelle sei gesagt, dass sich die Quellcodes nur speziell für die Websites eignen, bei denen ich sie benutzt haben... Die Codes sind keinesfalls perfekt... Sie dienen nur zur verdeutlichung, wie genau man TCP benutzt... ich rate deshalb vor allem die TCPRequest-Funktion nicht weiter zu verwenden, sondern immer selber zu sniffen^^ (Ihr habt nix verstanden? Kein Problem in den Tutorials wird alles erklärt )
Es gibt aber natürlich auch weitaus umfangreichere Tutorials als einen Browser^^ In meiner momentan letzten Reihe befasse ich mich z.B. damit wie ihr einen TCP-Chat programmiert, der stabil läuft und ausbaufähig ist
Jedes meiner Videos wird hier zusammen mit den jeweiligen Quellcodes veröffentlicht (wobei ich drauf aufmerksam mache, dass ihr die Quellcode weiterhin benutzten und veröffentlichen dürft, wenn ihr dazu meinen Namen nennt und einen Verweis auf diesen Thread oder das AIB-Forum nennt...)
Damit ihr immer auf dem neusten Stand seit könnt ihr mich auch abonnieren und meinen besuchen
Aber genug der Worte... lassen wir Bilder sprechen:
TCP-Tut #1: Quellcode einer Website (10 Min / 1 Teil):
TCPStartup()
If @error Then Return SetError(1,0,"")
$iSocket = TCPConnect($sIp, 80)
If @error Then Return SetError(2,0,"")
TCPSend($iSocket, $sPacket)
If @error Then Return SetError(3,0,"")
$iTimer = TimerInit()
Do
$sRecv = TCPRecv($iSocket, 1024)
If TimerDiff($iTimer) > $iMaxTime Then Return SetError(4,0,"")
Until $sRecv <> ""
Do
$sRecv &= TCPRecv($iSocket, 1024)
Until @error OR StringInStr($sRecv, '</html>')
TCPCloseSocket($iSocket)
TCPShutdown()
Return $sRecv
EndFunc
Func HumanVerify($sFrage)
Local $sFaktor, $iZahl1, $iZahl2, $sRechnung, $iErgebnis
If StringInStr($sFrage,'Welcher Tag ist heute?',1) Then
Switch @WDAY
Case 1
Return 'sonntag'
Case 2
Return 'montag'
Case 3
Return 'dienstag'
Case 4
Return 'mittwoch'
Case 5
Return 'donnerstag'
Case 6
Return 'freitag'
Case 7
Return 'samstag'
EndSwitch
ElseIf StringInStr($sFrage,'Bitte schreiben Sie das folgende Wort als Zahl: ',1) Then
$sFaktor = StringSplit($sFrage, 'Zahl: ',1)
Return WortZuZahl($sFaktor[2])
ElseIf StringInStr($sFrage,'Was ergibt',1) Then
$sFaktor = _StringBetween($sFrage,'Was ergibt ','?',1)
$sFaktor = StringSplit($sFaktor[0],' ')
$iZahl1 = WortZuZahl($sFaktor[1])
$iZahl2 = WortZuZahl($sFaktor[3])
$sRechnung = WortZuOperation($sFaktor[2])
$iErgebnis = Execute(String($iZahl1&$sRechnung&$iZahl2))
Return ZahlZuWort($iErgebnis)
ElseIf StringInStr($sFrage,'An jeder Hand haben wir fünf',1) Then
Return 'finger'
EndIf
EndFunc
Func ZahlZuWort($iZahl)
Local $i
Switch StringLen(String($iZahl))
Case 1
Return $sZahlen[$iZahl]
Case 2
If $iZahl = 11 Then
Return 'elf'
ElseIf $iZahl = 12 Then
Return 'zwölf'
EndIf
For $i = 10 To 90 Step +10
If $iZahl = $i Then Return $sZehner[$i/10]
Next
If $iZahl < 20 Then
Return $sZahlen[StringRight(String($iZahl),1)]&'zehn'
Else
If StringRight(String($iZahl),1) = '1' Then
Return 'einund' & $sZehner[StringLeft(String($iZahl),1)]
Else
Return $sZahlen[StringRight(String($iZahl),1)] & 'und' & $sZehner[StringLeft(String($iZahl),1)]
EndIf
EndIf
EndSwitch
Return 0
EndFunc
Func WortZuZahl($sWort)
Local $i, $z
$sWort = StringLower($sWort)
For $i = 0 to 12
If $sWort = $sZahlen[$i] Then Return $i
Next
For $z = 1 To 9
If StringRight($sWort,StringLen($sZehner[$z])) = $sZehner[$z] Then
$sWort = StringTrimRight($sWort,StringLen($sZehner[$z])+3)
If StringLen($sWort) > 0 Then
If StringRight($sWort,3) = 'ein' Then
$sWort = StringTrimRight($sWort,3)
Return __WortZuZahl($sWort)&Int($z&1)
Else
For $i = 1 to 9
If StringRight($sWort,StringLen($sZahlen[$i])) = $sZahlen[$i] Then
$sWort = StringTrimRight($sWort,StringLen($sZahlen[$i]))
Return __WortZuZahl($sWort)&Int($z&$i)
EndIf
Next
EndIf
EndIf
Return __WortZuZahl($sWort)&Int($z&0)
EndIf
Next
Return 0
EndFunc
Func __WortZuZahl($sWort)
Local $iHundert, $iTausend, $i
If StringRight($sWort,7) = 'hundert' Then
$sWort = StringTrimRight($sWort,7)
If StringRight($sWort,3) = 'ein' Then
$iHundert = 1
Else
For $i = 2 to 9
If StringRight($sWort,StringLen($sZahlen[$i])) = $sZahlen[$i] Then
$sWort = StringTrimRight($sWort,StringLen($sZahlen[$i]))
$iHundert = $i
ExitLoop
EndIf
Next
EndIf
Else
$iHundert = 0
EndIf
If StringRight($sWort,7) = 'tausend' Then
$sWort = StringTrimRight($sWort,7)
If StringRight($sWort,3) = 'ein' Then
$iTausend = 1
Else
For $i = 2 to 9
If StringRight($sWort,StringLen($sZahlen[$i])) = $sZahlen[$i] Then
$iTausend = $i
ExitLoop
EndIf
Next
EndIf
Else
$iTausend = 0
EndIf
If Int($iTausend&$iHundert) = 0 Then
Return ''
Else
Return Int($iTausend&$iHundert)
EndIf
EndFunc
Func WortZuOperation($sWort)
Switch $sWort
Case 'minus'
Return '-'
Case 'plus'
Return '+'
Case 'durch'
Return '/'
Case 'mal'
Return '*'
Case 'subtrahiert'
Return '*(-1) +'
Case 'addiert', 'addiert mit', 'addiert zu'
Return '+'
Case 'dividiert', 'dividiert durch'
Return '-'
Case 'multipliziert', 'multipliziert mit'
Return '*'
EndSwitch
EndFunc
TCPStartup()
If @error Then Return SetError(1,0,"")
$iSocket = TCPConnect($sIp, 80)
If @error Then Return SetError(2,0,"")
TCPSend($iSocket, $sPacket)
If @error Then Return SetError(3,0,"")
$iTimer = TimerInit()
Do
$sRecv = TCPRecv($iSocket, 1024)
If TimerDiff($iTimer) > $iMaxConnectTime Then Return SetError(4,0,"")
Until $sRecv <> ""
$iTimer = TimerInit()
Do
$sRecv &= TCPRecv($iSocket, 1024)
If TimerDiff($iTimer) > $iMaxRecvTime Then Return SetError(5,0,"")
Until @error OR StringInStr($sRecv, $sEndString)
TCPCloseSocket($iSocket)
TCPShutdown()
Return $sRecv
EndFunc
TCP Chat Tut: Server & mehrere Clients (80 Min / 8 Teile):
Global $iTimer = TimerInit()
Console("Ticktimer initialisiert!")
While 1
$iTempAccept = TCPAccept($iListen)
If $iTempAccept <> -1 Then
If $aClientConnections[0] < $sServerMaxClients Then
Client_Connect($iTempAccept)
Else
Client_SendFull($iTempAccept)
EndIf
EndIf
Func Client_Recv()
Local $i
If $aClientConnections[0] > 0 Then
For $i = 1 To $aClientConnections[0]
$aClientRecv[$i] = StringTrimLeft(TCPRecv($aClientConnections[$i], 1024, 1),2)
Next
EndIf
EndFunc
Func Client_Tick()
Local $sPacket, $i
$sPacket = "server=" & $sServerIp & @CRLF & _
"time=" & @MDAY & "." & @MON & "." & @YEAR & "-" & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF & _
"operation=tick" & @CRLF & @CRLF
If TimerDiff($iTimer) > 3000 Then
If $aClientConnections[0] > 0 Then
$i = 1
Do
If TCPSend($aClientConnections[$i], $sPacket) = 0 Then
Client_Disconnect($i)
Else
$i += 1
EndIf
Until $i > $aClientConnections[0]
EndIf
$iTimer = TimerInit()
EndIf
EndFunc
eigentlich gut, bis eins das man ändern könnte:
Man kann in der box wo man text empfangen kann auch selbst was reinschreiben und löschen
sonst ganz gut
[Sammelthread] AutoIt S4 league Autoit v3 Tutorials 08/12/2010 - S4 League - 6 Replies Hallo Com ,
ich zeig euch mal wie man mit AutoIt V3 einen Script für S4 League programmiert /erstellt..
Als erstes braucht ihr AutoIt V3
Hier zu Downloaden :
AutoIt v3 - Downloads
Da ihr jedochlich ohne Nomad Memory.au3 keine Script´s starten könnt ,braucht ihr auch natürlich Nomad Memory..
NomadMemory.au3? Where can I Find it? - AutoIt Forums
AutoIT Tutorials 03/07/2010 - AutoIt - 6 Replies Nope keine Links zu TuTs von mir ^^
Hey Com,
Ich bräucht mal Ein paar Links zu AutoIt Tutorials wo folgendes erklärt wird:
-Arbeiten mit Pixeln
-Zeit selber wählen
das müsste ich erklären das vertshet warscheinlic nicht jeder ;)
Z.b. Ein Programm das alle Paar sekunden die gleiche nachricht sendet