Hi Jungs!
Ich hab versucht mich in letzter zeit etwas mit tcp zu beschäftigen, da ich entweder einen simplen server für daheim oder einen minichat basteln wollte:)
um gleich mal die hauptfrage zu klären, JA der port 1337 ist in meinem router freigegen als TCP protokoll und JA meine firewall ist aus
ich habe mir einige scripts angeschaut und letztendlich ein tutorial gefunden dass gleich mit dateisenden ging da es anfangs überhaupt nicht lief hab ich das senden von hexdaten auf normale daten umgeschreiben (nur testweise versteht sich)
soweit hat es von meinem pc zu meinem pc gut geklappt halt mit @ipaddress1 als ich es dann aber umgeschrieben habe ging es nichtmehr! hier mein code
#cs ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]AutoIt Version: 3.3.0.0
Author: Jiyan Akgül --> Bitte so lassen
Moddet by : Dein Name <<-- Dein Name
[/autoit][autoit][/autoit][autoit]Script Function:
[/autoit][autoit][/autoit][autoit]<>--Data Send Server--<>
[/autoit][autoit][/autoit][autoit]#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]; Script Start -
[/autoit][autoit][/autoit][autoit]#cs
Das müsst ihr dann in den script einbauan und anpassen
#ce
;==== SERVER ====;
[/autoit][autoit][/autoit][autoit]#include <INet.au3>
[/autoit][autoit][/autoit][autoit]TCPStartup()
[/autoit][autoit][/autoit][autoit]Global $IP = @IPAddress1
Global $PORT = 1337
Global $MaxLen = 2048 ;Maximale Speed die benutzt werden darf (ACHTUNG: BENUTZT BEI ZU VIEL DIE GANZE LEITUNG)
$MainSocket = TCPListen($IP, $PORT, 1)
[/autoit][autoit][/autoit][autoit]MsgBox(64, "INFO", "Es gibt folgende DreiSchritte:" & @CR & "1.Datei Auswählen" & @CR & "2.Verbindung zum Cient herstellen" & @CR & "3.Datei senden")
[/autoit][autoit][/autoit][autoit]$File = FileOpenDialog("Bitte wählen sie die Datei aus", @DesktopDir, "All (*.*)")
[/autoit][autoit][/autoit][autoit]Do
$NewSocket = TCPAccept($MainSocket)
Until $NewSocket >= 0
TCPSend($NewSocket, "Datei")
TCPSend($NewSocket, FileGetLongName($File))
TCPSend($NewSocket, FileGetSize($File))
Do
$get = TCPRecv($NewSocket, $MaxLen)
Until $get <> ""
If $get = "OK" Then
MsgBox(64,"INFO","Datei wurde von Gegenstelle angenommen")
$handle = FileOpen($file,0)
$File = FileRead($handle)
TCPSend($NewSocket,$File)
MsgBox(64,"INFO","Die Datei wurde gesendet")
ElseIf $get = "NO" Then
MsgBox(64,"INFO","Datei wurde von Gegenstelle angenommen")
TCPCloseSocket($NewSocket)
TCPCloseSocket($MainSocket)
TCPShutdown()
Exit
EndIf
#cs ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]AutoIt Version: 3.3.0.0
Author: Jiyan Akgül --> Bitte so lassen
Moddet by : Dein Name <<-- Dein Name
[/autoit][autoit][/autoit][autoit]Script Function:
[/autoit][autoit][/autoit][autoit]<>--Data Send Server--<>
[/autoit][autoit][/autoit][autoit]#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]; Script Start -
[/autoit][autoit][/autoit][autoit]#cs
Das müsst ihr dann in den script einbauan und anpassen
#ce
;==== CLIENT ====;
#include<INET.au3>
Global $IP = _GetIP()
Global $Port = 1337
Global $MaxLen = 2048
TCPStartup()
[/autoit][autoit][/autoit][autoit]$Connect = MsgBox(0x21, "INFO", "Mit Server verbinden?")
If $Connect = 2 Then
TCPShutdown()
Exit
EndIf
MsgBox(0x40, "INFO", "Verbinde nun mit Server")
[/autoit][autoit][/autoit][autoit]_connect()
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Func _connect()
$MainSocket = TCPConnect($IP, $Port)
If $MainSocket = -1 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 Then
TCPCloseSocket($MainSocket)
_connect()
EndIf
EndIf
Do
$get = TCPRecv($MainSocket,$MaxLen)
Until $get <> ""
Do
$FileName = TCPRecv($MainSocket,$MaxLen)
Until $FileName <> ""
Do
$FileSize = TCPRecv($MainSocket,$MaxLen)
Until $FileSize <> ""
If $get = "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,"OK")
$File = FileSaveDialog("Datei speichern als",@DesktopDir,"Alle (*.*)",2,$Filename)
$open = FileOpen($File,1)
Do
$text = TCPRecv($MainSocket,$MaxLen)
until $text <> ""
FileWrite($open,$text)
FileClose($open)
MsgBox(0x40,"INFO","Datei wurde empfangen")
ElseIf $yes_no = 7 Then
TCPSend($MainSocket,"NO")
TCPCloseSocket($MainSocket)
TCPShutdown()
Exit
EndIf
EndIf
; NICHT DAS THANKS VERGESSEN x)
[/autoit][autoit][/autoit][autoit]EndFunc ;==>_connect
[/autoit]