Winsock Error 40006 beim Auslesen von dataArrival

herberta

Mitglied
Hallo Kollegen,
ich habe ein Problem. Ich möchte einen TCP/IP-Client bauen, der sich mit einem FTP-Server verbinden kann. Nun habe ich zum Test ein Winsock-Steuerelement in mein form eingebaut , eine Connection aufgebaut und wollte nun sehen, was der Server mir beim Connect zurückmeldet. Ich erhalte 15 Bytes an Daten. Wenn ich diese mit der Methode "Winsock1.GetData winsockData, vbString, bytesTotal" im Debugmodus auslesen will, erhalte ich einen Fehler 40006 mit Meldung "Falsche(s) Protokoll oder Verbindungszustand für die angeforderten Transaktion oder Anforderung".

Wenn ich den Quelltext ohne debuggen ausführe, tritt der Fehler nicht auf und ich erhalte ein paar Hieroglyphen. Weis jemand, was es damit auf sich hat? Wieso tritt im Debugmodus der Fehler auf und wieso sind die Daten nur hieroglyphen? Anbei der verwendete Code.

Private winsockData As String

Private Sub Command1_Click()
Winsock1.RemoteHost = "test-god"
Winsock1.RemotePort = 23

Winsock1.Connect
For i = 1 To 5
DoEvents
Next i

End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

m = MsgBox(CStr(bytesTotal))
Winsock1.GetData winsockData, vbString, bytesTotal
ServerText.Caption = winsockData
End Sub


Vielen Dank
 
Bist Du sicher daß Deine Anwendung dann auch noch verbunden ist ? FTP-Server haben eine Sprachvereinbarung die sich 'Requests for Comments' nennt und hier relativ gut erklärt ist.

Wie Du siehst musst Du Dich mit User und Passwort anmelden, da ansonsten die Verbindung serverseits beendet wird. Ich nehme an genau das ist der Fall bei Dir.
 
Nun, ich dachte zuerst macht man einen Connect zum Server und dieser fragt dann User und Passwort ab. Wenn ich im cmd-Fenster von Windows "ftp" aufrufe und einen open-Befehl absetze, dann gebe ich doch auch erst später einen User und ein Passwort ein.
 
Zurück