Downloaden
Übersicht

![]() |
regaaBetreff: Downloaden |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist es mit Blitz möglich, also z.B. (Ich habs noch net versucht), wenn ich n tcp stream öffne, also auf einem zip verweise oder so, ist es dann möglich durch readline oder readbyte oder wie auch immer, am ende zu einer gültigen checksumme zu kommen, also zu einem erfolgreichem download?
PS: Ich weiß ist ein bissel spät :p |
||
![]() |
BigSnake |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zu mindestens mit einem FTP Server ist das möglich. Ich habe mal entsprechende Funktionen im alten Code Archiv gepostet. | ||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
TCP hat einen Header den man auswerten sollte wo z.B.
die Dateilänge drin steht und beim download muß man den Header erkennen und weglassen wenn man die Datei speichern will . Kenne ich so ... Vieleicht kannste damit was anfangen ... Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
@markus2: Naja nicht direkt, also hmmm nö.. Sieht schon extrem kompliziert aus, aber ich schau mal im Script archiv nach, danke @all . | ||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, finde deinen Code net ![]() |
||
![]() |
BigSnake |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ist der Code
Code: [AUSKLAPPEN] Für alle denen mein Tut noch zu umständlich ist kommt hier die bequeme Methode, eine Bibliothek die schon alle wichtigen und bald alle FTP Befehle unterstützt. Bin für Bugfixes und Anregungen immer offen 8) /edit Auf Anregung von Hot Bit "Mit diesen FTP Kommandos hat man Vollzugriff auf die Daten des Servers, insofern man über Username und Passwort verfügt" Sprich ihr könnt mit der Lib alles machen, was man auch mit einem FTP Client machen kann. Zum Beispiel Updates von eurem Spiel selbstständig laden lassen, Highscores auf Servern ablegen etc. Die Möglichkeiten sind grenzenlos, meine Zeit allerdings nicht, daher müßt ihr ohne Beispiel auskommen /edit [code:1:1a117014b8] ; (C) 2003 by Lars Roth ; Kontakt : BigSnake@web.de ; Diese Datei ist Freeware und darf beliebig benutzt, verwendet und weitergegeben werde. ; Wird sie in einem BB Projekt benutzt, so muß sie in den Credits aufgeführt sein und als Kopie ; des Originals beiliegen ; Fehler Konstanten Const FtpCodeOk = 1 ; Kein Fehler Const FtpCodeNoTCPConnection = -255 ; Kann keine TCP Verbindung herstellen Const FtpCodeWrongUserName = -1 ; Falscher Benutzername Const FtpCodeWrongPassword = -2 ; Falsches Passwort Const FtpCodeNoSuchFileDirectory = -3 ; Keine Datei oder Verzeichnis Const FtpCodeNoMode = -4 ; Falscher Modus oder Modus nicht unterstützt ; Funktion : Ftp Connect ; Stellt eine Verbindung zu einem FTP Server her. Muß immer ausgeführt werden, bevor man ; irgendwelche anderen Ftp Funktionen aufrufen kann. ; Übergeben wird die komplette Adresse inklusive demn führendem ftp ; Gibt den Handle des FtpStreams zurück ; Wenn ein Fehler auftritt wird der Fehlercode zurückgegeben Function FtpConnect(Adress$,Username$,Password$) ; Lokale Variablen Local FtpStream Local Result$ ; Rückgabewerte des Servers ; Funktionskörper ; TCP Verbindung für Kommandos an den FTP Server FtpStream = OpenTCPStream(Adress$,21) If Not FtpStream Return FtpCodeNoTCPConnection ; User Anmeldung ; Liest die Begrüßung aus Result = ReadLine(FtpStream) ;Print Result WriteLine FtpStream,"USER "+Username$ Result = ReadLine(FtpStream) ;Print Result If Int(Left(Result,3)) > 500 Then ; Falscher Username CloseTCPStream FtpStream Return FtpCodeWrongUsername EndIf ; Passwort Übergabe WriteLine FtpStream,"PASS "+Password$ Result = ReadLine(FtpStream) ;Print Result If Int(Left(Result,3)) > 500 Then ; Falsches Passwort CloseTCPStream FtpStream Return FtpCodeWrongPassword EndIf ; Gibt den Handle zurück Return FtpStream End Function ; Funktion : Ftp Disconnect ; Beendet die Verbindung zu einem FTP Server. Sollte auf jeden Fall ausgeführt werden, ; nachdem man den FTP Server nicht mehr benötigt und bevor man das Programm beendet Function FtpDisconnect(FtpStream) ; Sendet Quit Befehl WriteLine FtpStream,"QUIT" ; Schließt die TCP Verbindung CloseTCPStream FtpStream End Function ; Funktion : Ftp Upload ; Lädt eine Datei auf den Ftp Server. Man muß zuerst auf dem Ftp Server in das passende Verzeichnis ; wechseln. File Name ist der Pfad und Dateiname auf dem lokalen Rechner. ServerName ist der Datei- ; name auf dem Server ; Gibt 1 zurück, wenn die Datei übertragen wurde und 0, wenn ein Fehler aufgetreten ist Function FtpUpload(FtpStream,FileName$,ServerName$) ; Lokale Variablen Local Result$ ; Rückgabe vom Server Local File ; Datei Pointer Local Bank ; Die Bank Local DataStream ; Der Daten Stream Local ByteCount ; Anzahl der gelesenen Bytes ; Funktionskörper ; Öffnet die Datei File = ReadFile(FileName$) If Not File Then Print "Die Datei existiert lokal nicht." WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream WaitKey End EndIf ; Fragt nach einer neuen Daten Verbindung WriteLine FtpStream,"PASV" Result = ReadLine(FtpStream) Print Result DataStream = FtpDataConnect(Result) If Not DataStream Then WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream Print "Es konnte keine Datenverbindung aufgebaut werden" WaitKey End EndIf ; Korrigiert den ServeName ServerName = Replace(ServerName,"","/") ; Bereitet den Server auf das Senden vor WriteLine FtpStream,"STOR "+ServerName$ Result = ReadLine(FtpStream) If Int(Left(Result,3)) <> 150 Then ; Datei kann nicht hochgeladen werden WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream CloseTCPStream DataStream Print "Datei kann nicht hochgeladen werden" WaitKey End EndIf ; Erstellt den 16 KB Buffer Bank = CreateBank(16384) ; Schreibt die Daten auf den Server Repeat ; Liest 16 KB aus der Datei ByteCount = ReadBytes(Bank,File,0,16384) ; Schreibt die Bytes in den Datenstrom WriteBytes(Bank,DataStream,0,ByteCount) Until ByteCount <> 16384 ; Schließt die Datei CloseFile File ; Löscht die Bank aus dem Speicher FreeBank Bank ; Liest ein, ob die Datei beim Server angekommen ist Result = ReadLine(FtpStream) ; Gibt den Datenstrom wieder frei CloseTCPStream DataStream End Function ; Funktion : Ftp Download ; Lädt eine Datei vom Server aus dem aktuellem Verzeichnis und speichert sie auf der Festplatte ; Filename ist der Dateiname + Pfad auf der Festplatte wohin die Datei ServerName gespeichert werden ; soll ; Gibt 1 zurück, wenn die Datei übertragen wird und 0 bei Fehlern Function FtpDownload(FtpStream,Filename$,ServerName$) ; Lokale Variablen Local Result$ ; Rückgabe vom Server Local File ; Datei Pointer Local Bank ; Die Bank Local DataStream ; Der Daten Stream Local ByteCount ; Anzahl der gelesenen Bytes ; Funktionskörper ; Erzeugt die Datei File = WriteFile(FileName$) If Not File Then Print "Die Datei konnte lokal nicht erzeugt werden." WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream WaitKey End EndIf ; Fragt nach einer neuen Daten Verbindung WriteLine FtpStream,"PASV" Result = ReadLine(FtpStream) Print Result DataStream = FtpDataConnect(Result) If Not DataStream Then WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream Print "Es konnte keine Datenverbindung aufgebaut werden" WaitKey End EndIf ; Korrigiert den ServeName ServerName = Replace(ServerName,"","/") ; Bereitet den Server auf das Empfangen vor WriteLine FtpStream,"RETR "+ServerName$ Result = ReadLine(FtpStream) If Int(Left(Result,3)) <> 150 Then ; Datei kann nicht hochgeladen werden WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream CloseTCPStream DataStream Print "Datei kann nicht downgeloadet werden" WaitKey End EndIf ; Erstellt den 16 KB Buffer Bank = CreateBank(16384) ; Schreibt die Daten vom Server in die Datei Repeat ; Liest 16 KB vom Server ByteCount = ReadBytes(Bank,DataStream,0,16384) ; Schreibt die Bytes in die Datei WriteBytes(Bank,File,0,ByteCount) Until ByteCount <> 16384 ; Schließt die Datei CloseFile File ; Löscht die Bank aus dem Speicher FreeBank Bank ; Liest ein, ob die Datei beim Server angekommen ist Result = ReadLine(FtpStream) ; Gibt den Datenstrom wieder frei CloseTCPStream DataStream End Function ; Funktion : Ftp Change Directory ; Wechselt zum angegebenem Unter Verzeichnis auf dem FTP Server Function FtpChangeDirectory(FtpStream,Directory$) ; Tauscht gegen / im Pfad Local DirPath$ = Directory$ Local Result$ DirPath = Replace(DirPath,"","/") ; Wechselt das Verzeichnis WriteLine FtpStream,"CWD "+DirPath$ Result = ReadLine(FtpStream) If Int(Left(Result,3)) > 500 Then Return FtpCodeNoSuchFileDirectory Else Return FtpCodeOk EndIf End Function ; Funktion : Ftp Parent Directory ; Wechselt zum übergeordnetem Verzeichnis Function FtpParentDirectory(FtpStream) WriteLine FtpStream,"CDUP" Local Result$ = ReadLine(FtpStream) If Int(Left(Result,3)) > 500 Then Return FtpCodeNoSuchFileDirectory Else Return FtpCodeOk EndIf End Function ; Funktion : Ftp ASCII Mode ; Schaltet den Server in den ASCII Modus. Mit jenem lassen sich Textdateien empfangen und ; verschicken Function FtpASCIIMode(FtpStream) WriteLine FtpStream,"TYPE A" Local Result$ = ReadLine(FtpStream) If Int(Left(Result,3)) <> 200 Then Return FtpCodeNoMode Else Return FtpCodeOk EndIf End Function ; Funktion : Ftp Binary Mode ; Schaltet den Server in den Binär Modus. Mit jenem lassen sich Binär Dateien verschicken ; und empfangen Function FtpBinaryMode(FtpStream) WriteLine FtpStream,"TYPE I" Local Result$ = ReadLine(FtpStream) If Int(Left(Result,3)) <> 200 Then Return FtpCodeNoMode Else Return FtpCodeOk EndIf End Function ; Funktion : Ftp Data Connect ; Hilfsfunktion, direkter Aufruf wird nicht empfolen. Entschlüsselt ; vom Server übergebene IP und Port und verbindet mit einem Data Stream dorthin Function FtpDataConnect(IPP$) ; Die Funktion entschlüsselt IP und Port, verbindet dorthin und gibt den Handle zurück Local Connection Local IP$ Local Port$ Local Count Local StrPos Local Buffer$ ; Prüft, ob die ersten drei Zeichen 227 sind If Left(IPP,3) = 227 Then ; Kopiert den Abschnitt mit den Klammern auf dem String StrPos = Instr(IPP,"(",1) Buffer = Right(IPP,Len(IPP)-StrPos) ; Entfernt die Klammern Buffer = Left(Buffer,Len(Buffer)-1) ; Trennt IP und Port Teil StrPos = 0 For Count = 1 To 4 Step 1 StrPos = Instr(Buffer,",",StrPos+1) Next ; Nach dem vierten Kommata steht der Port Code IP$ = Left(Buffer,Len(Buffer)-(Len(Buffer)-StrPos)-1) Port = Right(Buffer,Len(Buffer)-StrPos) ; Ersetzt die Kommata durch Punkte für korrekte IP Angabe IP$ = Replace(IP$,",",".") ; Ermittelt die korrekte Port Nummer Buffer = Port StrPos = Instr(Buffer,",",1) Port1$ = Left(Buffer,StrPos-1) Port2$ = Right(Buffer,Len(Buffer)-StrPos) Port = Int(Port1)*256+Int(Port2) Print "Verbinde nach "+IP+" mit Port "+Port Connection = OpenTCPStream(IP$,Port) Return Connection Else ; Konnte keine Verbindung aufbauen Return 0 EndIf End Function Function FtpRename(FtpStream,OldName$,NewName$) ; ... Wird später implementiert End Function Function FtpDelete(FtpStream,ServerFile$) ; ... Wird später implementiert End Function Function FtpMakeDir(FtpStream,ServerDir$) ; ... Wird später implementiert End Function Function FtpRemoveDir(FtpStream,ServerDir$) ; ... Wird später implementiert End Function ; Funktion : Ftp Cur Directory ; Ermittelt das aktuelle Verzeichnis und gibt es als String zurück ; Bei einem Fehler wird ein leerer String zurückgegeben Function FtpCurDirectory$(FtpStream) WriteLine FtpStream,"PWD" Return ReadLine FtpStream End Function |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo, vielen Dank, genau sowas hab ich gebraucht. ![]() |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hut ab, ziemlich genial, da steckt logik hinter. Ich würd dazu bestimmt Wochen brauchen. | ||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst es aber auch ganz einfach per DLL machen --> www.makegame.de/btools ![]() |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
In Blitz3D seh ich kein userlibs verz, also ich hab die demo , ist das bei der vollversion anders? | ||
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bigsnake, gute lib...aber ich empfehle die folgendes tut: https://www.blitzforum.de/viewtopic.php?t=1261 ![]() ich war mal so frei, den code in ein lesbares format zu bringen (kannst ihn ja von einem mod in deinen beitrag editieren lassen): Code: [AUSKLAPPEN] ;Für alle denen mein Tut noch zu umständlich ist kommt hier die bequeme Methode, eine Bibliothek die schon alle
;wichtigen und bald alle FTP Befehle unterstützt. Bin für Bugfixes und Anregungen immer offen 8) ;Auf Anregung von Hot Bit ;"Mit diesen FTP Kommandos hat man Vollzugriff auf die Daten des Servers, insofern man über Username und Passwort ;verfügt" ;Sprich ihr könnt mit der Lib alles machen, was man auch mit einem FTP Client machen kann. Zum Beispiel Updates von ;eurem Spiel selbstständig laden lassen, Highscores auf Servern ablegen etc. Die Möglichkeiten sind grenzenlos, meine ;Zeit allerdings nicht, daher müßt ihr ohne Beispiel auskommen ; (C) 2003 by Lars Roth ; Kontakt : BigSnake@web.de ; Diese Datei ist Freeware und darf beliebig benutzt, verwendet und weitergegeben werde. ; Wird sie in einem BB Projekt benutzt, so muß sie in den Credits aufgeführt sein und als Kopie ; des Originals beiliegen ;////////////////////////////////////////////////////////////////////////// ; Fehler Konstanten Const FtpCodeOk = 1 ; Kein Fehler Const FtpCodeNoTCPConnection = -255 ; Kann keine TCP Verbindung herstellen Const FtpCodeWrongUserName = -1 ; Falscher Benutzername Const FtpCodeWrongPassword = -2 ; Falsches Passwort Const FtpCodeNoSuchFileDirectory = -3 ; Keine Datei oder Verzeichnis Const FtpCodeNoMode = -4 ; Falscher Modus oder Modus nicht unterstützt ;/////////////////////////////////////////////////////////////////////////// ;/////////////////////////////////////////////////////////////////////////////////////////////// ; Funktion : Ftp Connect ; Stellt eine Verbindung zu einem FTP Server her. Muß immer ausgeführt werden, bevor man ; irgendwelche anderen Ftp Funktionen aufrufen kann. ; Übergeben wird die komplette Adresse inklusive demn führendem ftp ; Gibt den Handle des FtpStreams zurück ; Wenn ein Fehler auftritt wird der Fehlercode zurückgegeben ;///////////////////////////////////////////////////////////////////////////////////////////// Function FtpConnect(Adress$,Username$,Password$) ; Lokale Variablen Local FtpStream Local Result$ ; Rückgabewerte des Servers ; Funktionskörper ; TCP Verbindung für Kommandos an den FTP Server FtpStream = OpenTCPStream(Adress$,21) If Not FtpStream Return FtpCodeNoTCPConnection ; User Anmeldung ; Liest die Begrüßung aus Result = ReadLine(FtpStream) ;Print Result WriteLine FtpStream,"USER "+Username$ Result = ReadLine(FtpStream) ;Print Result If Int(Left(Result,3)) > 500 Then ; Falscher Username CloseTCPStream FtpStream Return FtpCodeWrongUsername EndIf ; Passwort Übergabe WriteLine FtpStream,"PASS "+Password$ Result = ReadLine(FtpStream) ;Print Result If Int(Left(Result,3)) > 500 Then ; Falsches Passwort CloseTCPStream FtpStream Return FtpCodeWrongPassword EndIf ; Gibt den Handle zurück Return FtpStream End Function ;/////////////////////////////////////////////////////////////////////////////////////// ; Funktion : Ftp Disconnect ; Beendet die Verbindung zu einem FTP Server. Sollte auf jeden Fall ausgeführt werden, ; nachdem man den FTP Server nicht mehr benötigt und bevor man das Programm beendet ;//////////////////////////////////////////////////////////////////////////////////////// Function FtpDisconnect(FtpStream) ; Sendet Quit Befehl WriteLine FtpStream,"QUIT" ; Schließt die TCP Verbindung CloseTCPStream FtpStream End Function ;//////////////////////////////////////////////////////////////////////////////////////////////////// ; Funktion : Ftp Upload ; Lädt eine Datei auf den Ftp Server. Man muß zuerst auf dem Ftp Server in das passende Verzeichnis ; wechseln. File Name ist der Pfad und Dateiname auf dem lokalen Rechner. ServerName ist der Datei- ; name auf dem Server ; Gibt 1 zurück, wenn die Datei übertragen wurde und 0, wenn ein Fehler aufgetreten ist ;//////////////////////////////////////////////////////////////////////////////////////////////////// Function FtpUpload(FtpStream,FileName$,ServerName$) ; Lokale Variablen Local Result$ ; Rückgabe vom Server Local File ; Datei Pointer Local Bank ; Die Bank Local DataStream ; Der Daten Stream Local ByteCount ; Anzahl der gelesenen Bytes ; Funktionskörper ; Öffnet die Datei File = ReadFile(FileName$) If Not File Then Print "Die Datei existiert lokal nicht." WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream WaitKey End EndIf ; Fragt nach einer neuen Daten Verbindung WriteLine FtpStream,"PASV" Result = ReadLine(FtpStream) Print Result DataStream = FtpDataConnect(Result) If Not DataStream Then WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream Print "Es konnte keine Datenverbindung aufgebaut werden" WaitKey End EndIf ; Korrigiert den ServeName ServerName = Replace(ServerName,"","/") ; Bereitet den Server auf das Senden vor WriteLine FtpStream,"STOR "+ServerName$ Result = ReadLine(FtpStream) If Int(Left(Result,3)) <> 150 Then ; Datei kann nicht hochgeladen werden WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream CloseTCPStream DataStream Print "Datei kann nicht hochgeladen werden" WaitKey End EndIf ; Erstellt den 16 KB Buffer Bank = CreateBank(16384) ; Schreibt die Daten auf den Server Repeat ; Liest 16 KB aus der Datei ByteCount = ReadBytes(Bank,File,0,16384) ; Schreibt die Bytes in den Datenstrom WriteBytes(Bank,DataStream,0,ByteCount) Until ByteCount <> 16384 ; Schließt die Datei CloseFile File ; Löscht die Bank aus dem Speicher FreeBank Bank ; Liest ein, ob die Datei beim Server angekommen ist Result = ReadLine(FtpStream) ; Gibt den Datenstrom wieder frei CloseTCPStream DataStream End Function ;//////////////////////////////////////////////////////////////////////////////////////////////////// ; Funktion : Ftp Download ; Lädt eine Datei vom Server aus dem aktuellem Verzeichnis und speichert sie auf der Festplatte ; Filename ist der Dateiname + Pfad auf der Festplatte wohin die Datei ServerName gespeichert werden ; soll ; Gibt 1 zurück, wenn die Datei übertragen wird und 0 bei Fehlern ;////////////////////////////////////////////////////////////////////////////////////////////////// Function FtpDownload(FtpStream,Filename$,ServerName$) ; Lokale Variablen Local Result$ ; Rückgabe vom Server Local File ; Datei Pointer Local Bank ; Die Bank Local DataStream ; Der Daten Stream Local ByteCount ; Anzahl der gelesenen Bytes ; Funktionskörper ; Erzeugt die Datei File = WriteFile(FileName$) If Not File Then Print "Die Datei konnte lokal nicht erzeugt werden." WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream WaitKey End EndIf ; Fragt nach einer neuen Daten Verbindung WriteLine FtpStream,"PASV" Result = ReadLine(FtpStream) Print Result DataStream = FtpDataConnect(Result) If Not DataStream Then WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream Print "Es konnte keine Datenverbindung aufgebaut werden" WaitKey End EndIf ; Korrigiert den ServeName ServerName = Replace(ServerName,"","/") ; Bereitet den Server auf das Empfangen vor WriteLine FtpStream,"RETR "+ServerName$ Result = ReadLine(FtpStream) If Int(Left(Result,3)) <> 150 Then ; Datei kann nicht hochgeladen werden WriteLine FtpStream,"QUIT" CloseTCPStream FtpStream CloseTCPStream DataStream Print "Datei kann nicht downgeloadet werden" WaitKey End EndIf ; Erstellt den 16 KB Buffer Bank = CreateBank(16384) ; Schreibt die Daten vom Server in die Datei Repeat ; Liest 16 KB vom Server ByteCount = ReadBytes(Bank,DataStream,0,16384) ; Schreibt die Bytes in die Datei WriteBytes(Bank,File,0,ByteCount) Until ByteCount <> 16384 ; Schließt die Datei CloseFile File ; Löscht die Bank aus dem Speicher FreeBank Bank ; Liest ein, ob die Datei beim Server angekommen ist Result = ReadLine(FtpStream) ; Gibt den Datenstrom wieder frei CloseTCPStream DataStream End Function ;/////////////////////////////////////////////////////////////////// ; Funktion : Ftp Change Directory ; Wechselt zum angegebenem Unter Verzeichnis auf dem FTP Server ;////////////////////////////////////////////////////////////////// Function FtpChangeDirectory(FtpStream,Directory$) ; Tauscht gegen / im Pfad Local DirPath$ = Directory$ Local Result$ DirPath = Replace(DirPath,"","/") ; Wechselt das Verzeichnis WriteLine FtpStream,"CWD "+DirPath$ Result = ReadLine(FtpStream) If Int(Left(Result,3)) > 500 Then Return FtpCodeNoSuchFileDirectory Else Return FtpCodeOk EndIf End Function ;////////////////////////////////////////////////////////////////////// ; Funktion : Ftp Parent Directory ; Wechselt zum übergeordnetem Verzeichnis ;///////////////////////////////////////////////////////////////////// Function FtpParentDirectory(FtpStream) WriteLine FtpStream,"CDUP" Local Result$ = ReadLine(FtpStream) If Int(Left(Result,3)) > 500 Then Return FtpCodeNoSuchFileDirectory Else Return FtpCodeOk EndIf End Function ;////////////////////////////////////////////////////////////////////////////////////// ; Funktion : Ftp ASCII Mode ; Schaltet den Server in den ASCII Modus. Mit jenem lassen sich Textdateien empfangen und ; verschicken ;//////////////////////////////////////////////////////////////////////////////////// Function FtpASCIIMode(FtpStream) WriteLine FtpStream,"TYPE A" Local Result$ = ReadLine(FtpStream) If Int(Left(Result,3)) <> 200 Then Return FtpCodeNoMode Else Return FtpCodeOk EndIf End Function ;///////////////////////////////////////////////////////////////////////////////// ; Funktion : Ftp Binary Mode ; Schaltet den Server in den Binär Modus. Mit jenem lassen sich Binär Dateien verschicken ; und empfangen ;////////////////////////////////////////////////////////////////////////////// Function FtpBinaryMode(FtpStream) WriteLine FtpStream,"TYPE I" Local Result$ = ReadLine(FtpStream) If Int(Left(Result,3)) <> 200 Then Return FtpCodeNoMode Else Return FtpCodeOk EndIf End Function ;/////////////////////////////////////////////////////////////////////////////// ; Funktion : Ftp Data Connect ; Hilfsfunktion, direkter Aufruf wird nicht empfolen. Entschlüsselt ; vom Server übergebene IP und Port und verbindet mit einem Data Stream dorthin ;/////////////////////////////////////////////////////////////////////////////// Function FtpDataConnect(IPP$) ; Die Funktion entschlüsselt IP und Port, verbindet dorthin und gibt den Handle zurück Local Connection Local IP$ Local Port$ Local Count Local StrPos Local Buffer$ ; Prüft, ob die ersten drei Zeichen 227 sind If Left(IPP,3) = 227 Then ; Kopiert den Abschnitt mit den Klammern auf dem String StrPos = Instr(IPP,"(",1) Buffer = Right(IPP,Len(IPP)-StrPos) ; Entfernt die Klammern Buffer = Left(Buffer,Len(Buffer)-1) ; Trennt IP und Port Teil StrPos = 0 For Count = 1 To 4 Step 1 StrPos = Instr(Buffer,",",StrPos+1) Next ; Nach dem vierten Kommata steht der Port Code IP$ = Left(Buffer,Len(Buffer)-(Len(Buffer)-StrPos)-1) Port = Right(Buffer,Len(Buffer)-StrPos) ; Ersetzt die Kommata durch Punkte für korrekte IP Angabe IP$ = Replace(IP$,",",".") ; Ermittelt die korrekte Port Nummer Buffer = Port StrPos = Instr(Buffer,",",1) Port1$ = Left(Buffer,StrPos-1) Port2$ = Right(Buffer,Len(Buffer)-StrPos) Port = Int(Port1)*256+Int(Port2) Print "Verbinde nach "+IP+" mit Port "+Port Connection = OpenTCPStream(IP$,Port) Return Connection Else ; Konnte keine Verbindung aufbauen Return 0 EndIf End Function Function FtpRename(FtpStream,OldName$,NewName$) ; ... Wird später implementiert End Function Function FtpDelete(FtpStream,ServerFile$) ; ... Wird später implementiert End Function Function FtpMakeDir(FtpStream,ServerDir$) ; ... Wird später implementiert End Function Function FtpRemoveDir(FtpStream,ServerDir$) ; ... Wird später implementiert End Function ;//////////////////////////////////////////////////////////////// ; Funktion : Ftp Cur Directory ; Ermittelt das aktuelle Verzeichnis und gibt es als String zurück ; Bei einem Fehler wird ein leerer String zurückgegeben ;///////////////////////////////////////////////////////////////7 Function FtpCurDirectory$(FtpStream) WriteLine FtpStream,"PWD" Return ReadLine FtpStream End Function |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bekomm immer fehlercode 12003 bei btgetftp ![]() |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alsoooo, ich hab herausgefunden, das die ganzen Codes zwar vom FTP Client wir z.B. smartftp ganz gut eingelesen werden, aber wenn ich es mit blitzbasic versuche geht das auch auf allen servern außer auf meinem, nutze redhat 7.3 + proftp 1.2.4 . Hat da jemand erfahrung mit, was man machen könnte, ob das an der Konfiguration des FTP Servers liegt, oder vielleicht doch am Apache.?? Wäre euch sehr dankbar. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group