Hallo Liebe gemeinde,
aktuell versuche ich mich einen TCPClient zu basteln(kompletter anfänger was netzwerk angeht), was auch bis jetzt auch funktioniert.
Der server ist ein Filezilla server. Die connection funktioniert mit dem Filezilla Client auch.
Jedoch wenn ich versuche mit meinem Client die Ordnerstruktur auszulesen, bekomme ich diese Fehlermeldung.
"425 Can't open data connection for transfer of "/" "
irgendwas muss ich vergessen haben, hat jemand eine Idee?
Anbei der Code:
aktuell versuche ich mich einen TCPClient zu basteln(kompletter anfänger was netzwerk angeht), was auch bis jetzt auch funktioniert.
Der server ist ein Filezilla server. Die connection funktioniert mit dem Filezilla Client auch.
Jedoch wenn ich versuche mit meinem Client die Ordnerstruktur auszulesen, bekomme ich diese Fehlermeldung.
"425 Can't open data connection for transfer of "/" "
irgendwas muss ich vergessen haben, hat jemand eine Idee?
Anbei der Code:
VB.NET-Quellcode
-
- Public Sub ftpLogin(ByVal strName As String, ByVal strPWD As String, ByVal strftpLogin As String, ByVal Login_Form As Login)
- Try
- Dim strCommand As String
- Dim strReturnMessage As String
- Dim bteSendBytes() As Byte
- Dim bteRetruenBytes() As Byte = Nothing
- Dim intReturnByteLength As Integer
- Main_Ritchtextbox.AppendText("Verbinde zu FTP-Adresse: " & strftpLogin & vbNewLine)
- FTP_Tcp_Client = New TcpClient(strftpLogin, 990)
- Parent_Form.FTP_Tcp_Client = FTP_Tcp_Client
- sslStream = New SslStream(FTP_Tcp_Client.GetStream(), False, New RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate), Nothing)
- If FTP_Tcp_Client.Connected = True Then
- Main_Ritchtextbox.AppendText("Mit TZCADDesign FTP-Server Verbunden" & vbNewLine)
- End If
- Dim testcert As X509CertificateCollection = Nothing
- 'sslStream.AuthenticateAsClient()
- Try
- sslStream.AuthenticateAsClient("", testcert, System.Security.Authentication.SslProtocols.Tls, True)
- Catch e As AuthenticationException
- Dim msg As String = ""
- msg &= "Exception: " & e.Message
- If e.InnerException IsNot Nothing Then
- msg &= "Inner exception: " & e.InnerException.Message
- End If
- msg &= "Authentication failed - closing the connection."
- FTP_Tcp_Client.Close()
- End Try
- Main_Ritchtextbox.AppendText("Sende Usernamen" & vbNewLine)
- strCommand = "USER " + strName + vbCrLf
- bteSendBytes = Encoding.ASCII.GetBytes(strCommand)
- sslStream.Write(bteSendBytes, 0, bteSendBytes.Length)
- intReturnByteLength = FTP_Tcp_Client.ReceiveBufferSize
- ReDim bteRetruenBytes(intReturnByteLength)
- sslStream.Read(bteRetruenBytes, 0, intReturnByteLength)
- strReturnMessage = Encoding.ASCII.GetString(bteRetruenBytes) + "/ "
- Main_Ritchtextbox.AppendText("Sende Passwort" & vbNewLine)
- strCommand = "PASS " + strPWD + vbCrLf
- Array.Clear(bteSendBytes, 0, bteSendBytes.Length)
- bteSendBytes = Encoding.ASCII.GetBytes(strCommand)
- sslStream.Write(bteSendBytes, 0, bteSendBytes.Length)
- intReturnByteLength = FTP_Tcp_Client.ReceiveBufferSize
- ReDim bteRetruenBytes(intReturnByteLength)
- sslStream.Read(bteRetruenBytes, 0, intReturnByteLength)
- strReturnMessage = Encoding.ASCII.GetString(bteRetruenBytes) + "/ "
- sslStream.Read(bteRetruenBytes, 0, intReturnByteLength - 1)
- Main_Ritchtextbox.AppendText("Nachricht vom Server: ")
- If Encoding.ASCII.GetString(bteRetruenBytes) Like "530*" Then
- Main_Ritchtextbox.AppendText("Loginname oder Passwort Falsch" & vbNewLine)
- FTP_Tcp_Client.Client.Close()
- ElseIf Encoding.ASCII.GetString(bteRetruenBytes) Like "230*" Then
- Login_Form.Hide()
- Main_Ritchtextbox.AppendText("Sie sind eingeloggt" & vbNewLine)
- Else
- Main_Ritchtextbox.AppendText("Unbekanter Fehler wenden Sie sich an Info@sw-trainer.de" & vbNewLine)
- FTP_Tcp_Client.Client.Close()
- End If
- FTPCommands(sslStream, "AUTH TLS ", strReturnMessage)
- FTPCommands(sslStream, "SYST ", strReturnMessage)
- FTPCommands(sslStream, "FEAT ", strReturnMessage)
- FTPCommands(sslStream, "PBSZ 0", strReturnMessage)
- FTPCommands(sslStream, "PROT P", strReturnMessage)
- FTPCommands(sslStream, "PWD", strReturnMessage)
- FTPCommands(sslStream, "PASV", strReturnMessage)
- FTPCommands(sslStream, "MLSD", strReturnMessage)
- Catch ex As SocketException
- ReturnPwdMessage = ex.Message
- End Try
- End Sub