ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
982
982
EMPFEHLEN
-
07.07.08 14:08 #1
- Registriert seit
- Aug 2005
- Beiträge
- 256
Hallo,
undzwar habe ich folgenden Code gefunden:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Imports System Imports System.Net Imports System.Net.Sockets Imports System.Text Imports System.io Imports System.Threading 'Die Imports Public stream As NetworkStream Public sr As StreamReader Private Function sendCommand(ByVal send As String) As String send += vbCrLf Dim data As [Byte]() = Encoding.ASCII.GetBytes(send) stream.Write(data, 0, data.Length) sr = New StreamReader(stream) Dim buffer As New StringBuilder Do While sr.Peek() > 0 Thread.Sleep(100) buffer.Append(sr.ReadLine + vbCrLf) Loop Return buffer.ToString End Function Dim info as String Dim server As String = "servername" Dim user As String = "benutername" Dim password As String = "passwort" Dim client As New TcpClient(server, 110) stream = client.GetStream() sr = New StreamReader(stream) info += sendCommand("?") MSGBOX(info)
Über den Ausführen Befehl telnet kann ich das zu steuernde Gerät mit den normalen Kurzbefehlen wie "O" steuern. Bei der Steuerung per VB.NET muss jedoch aus dem "O" laut Anleitung "0x4F" erzeugt werden.
Allerdings weiß ich nicht, wie ich an dieses Format komme. Hier noch ein kleiner Ausschnitt aus der Erklärung:
Wie kann ich dieses Format erzeugen?Die Kurzbefehle sind nicht über die Kommandozeile nutzbar, sie können/sollen für eigene Software-Anwendungen genutzt werden, die das Telnet Protokoll unterstützen.
Die Kurzbefehle sind nicht ASCII-codiert, sondern werden binär verwendet. Beispiel: Der Befehl 'O' hat den hexadezimalen Wert 0x4F. Erhält der Telnet-Server diesen Befehl, erwartet er im nächsten empfangenen Byte die Daten wie die Ausgänge geschaltet werden sollen. Sendet man nun über die Konsole O 1, erhält der Server folgende Daten 0x4F 0x20 0x31 (das Leerzeichen hat den Wert 0x20 und die 1 den Wert 0x31). Da nur ein Byte erwartet wird, findet die 0x31 keine Beachtung. Der Wert 0x20 veranlasst den Server dazu den 6. Ausgang zu setzen, da das 6. Bit gesetzt ist.
Wird O1 über die Konsole gesendet, erhält der Server folgende Daten: 0x4F 0x31, es werden nun die Ausgänge 1, 5 und 6 gesetzt, da das 1., 5. und 6. Bit gesetzt sind.
Gruß David
-
Ein Entwickler sollte schon wissen, was das Hexadezimalsystem ist.
-
08.07.08 10:08 #3
- Registriert seit
- Aug 2005
- Beiträge
- 256
Dass das Hexadezimal ist, habe ich auch schon gesehen. Die Frage ist nur, warum beispielsweise ein "O" den Wert "0x4F" hat.
Ich habe bisher den Ascii Code erzeugt und davon den Hexadezimalwert. Das ergibt dann 4F. Leider fehlt die 0x am Anfang. Außerdem muss ich ein Bytearray erzeugen, um die Befehle senden zu können. Also womit soll ich den String dann encodieren, damit die richtigen Bytes rauskommen?
-
Ich weiß nicht wie es in .NET ist, aber in PHP ist das 0x das Zeichen dafür, dass die darauffolgende Zahl im Hexadezimal System ist. Also einfach an das 4F das 0x vorne drankleben

Kann mich aber auch täuschen
-
08.07.08 12:37 #5
- Registriert seit
- Aug 2005
- Beiträge
- 256
Die Idee hatte ich auch schon :P Das mit der Ankündigung des Hexadezimalzeichens könnte stimmen... Dann wäre da nur noch das Problem mit dem Umwandeln von den Zeichen in Bytes...
-
Ich würde da wohl auf System.Text.Encoding.UTF8.getBytes() tippen
Ähnliche Themen
-
Matlab-Befehle aus "mex.h" bzw. "matrix.h" bringen Linker Fehler
Von Cappaja im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 13.06.09, 12:36 -
Postfix Telnet hängt nach "mail from:<xx@xxxx.xx>"
Von spex im Forum Hosting & WebserverAntworten: 1Letzter Beitrag: 27.04.09, 11:49 -
2 Befehle mit Pipe "verbinden"
Von wpb im Forum Linux & UnixAntworten: 5Letzter Beitrag: 13.08.07, 17:05 -
PHP Telnet "Hide your Input"
Von Cruzifixxx im Forum PHPAntworten: 0Letzter Beitrag: 03.12.05, 02:03 -
Wie mache ich solche "Objekte"
Von designerpeppi im Forum Cinema 4DAntworten: 1Letzter Beitrag: 23.09.03, 19:44





Zitieren
Login





