Hej, Japps det är telnet och inte ssh, man tycker ju att man borde få typ inloggnings texten och det i klartext men det får man inte. Testa följande, lägg in en form med en command 1, och en winsock kontroll. Hur får du texten? Hur ser det ut? Innehåller den ascii 254? Kan nog vara nån terminalemulering. Är nog bara att strippa så mycket som möjligt. Börja med att bara behålla ascii 32, 65-90 och 97-122 och se vad du får ut av det. Gå igenom varje tecken i hela texten och om tecknet är något annat än XX (där XX är ok tecken) så ta bort det Mitt förslag på en funktion som "städar" strängen(Förutsätter att du använder vb6): Hmm .. jag skall testa detta så fort jag kommer hem *längtarwinsock
Jag försöker att göra en liten applikation som samtalar med en Unix maskin via Telnet. Borde inte vara så svår, men jag får inte texten från telnet servern i klartext, den verkar skickas på ett specifikt sätt.
Någon som har en aning om vad det kan vara.
Mvh
Rickard MSv: winsock
Har du någon aning om vad det kan vara?Sv: winsock
Sample Code ====================================
Option Explicit
Private Sub Command1_Click()
'ftp.sunet.se, ftp sker normalt på port 21
Winsock1.Connect "194.71.11.20", 21
End Sub
Private Sub Form_Load()
Winsock1.Protocol = sckTCPProtocol
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim inData As String
Winsock1.GetData inData, vbString, bytesTotal
MsgBox inData
End Sub
Sample Code ====================================
/peterhSv: winsock
Sv: winsock
for i=0 to len(texten)
if asc(mid(texten,i,1))=XX1 or asc(mid(texten,i,1))=XX2 ... then _
texten=left(texten,i-1) & right(texten, len(texten)-i)
next
(Det kan vara något fel när man skall ta bort texten, prova i så fall att addera eller subtrahera ett till andra argumentet i left och right. Till slut får du det rätt)
du behöver inte använda asc, men om du gör det kan du lättare ringa in A-Z till exempel (if asc(...)>65 or ...)
/Niklas JanssonSv: winsock
Public Function CleanString(Text As String)
Dim Data() As Byte
Dim Result() As Byte
Dim Index As Long
Dim Length As Long
Dim Count As Long
Data = StrConv(Text, vbFromUnicode)
Length = UBound(Data)
ReDim Result(0 To Length)
For Index = 0 To Length
Select Case Data(Index)
Case 32, 65 To 90, 97 To 122
Result(Count) = Data(Index)
Count = Count + 1
End Select
Next
If Count Then
ReDim Preserve Result(0 To Count - 1)
CleanString = StrConv(Result, vbUnicode)
End If
End FunctionSv: winsock
en liten sak bara, vilken vilken av variablerna är det som jag skall skicka det till för att funktionen skall göra sitt jobb.