vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Telnet - von Windows auf Unix zugreifen - Invoke oder Thread 
Autor: jasmina
Datum: 10.04.12 11:15

Hallo,
danke für Deinen Hinweis auf den Zeilenumbruch. Anschließend funktioniert zwar das Senden aber
wohin? Entweder in der Routine 'Nachricht_lesen' bei der vorletzten Zeile bleibt das Programm hängen und/oder die Antwort besteht aus: '??!??&'
Der Port ist zum Senden die 23 -
kann es jedoch sein, dass beim Antworten ein anderer Port verwendet wird? -
Und wohin oder wie sollte ich BeginInvoke() setzen?
Programm sowie den Sende- und Empfangsteil in ein eigenes Thread verlagert.

Anbei mein Code: (Bitte um Verbesserungen oder Vorschläge wie ich die Telnet-Verbindung hinbekomme oder was daran noch falsch ist. Danke)
Klassencode:
Imports System.IO
Imports System.Net.Sockets
Imports System.Threading
Class clsTelnet
    Dim TServer As String = "xy"
    Dim TNachricht As String
    Dim Port As Integer = 23
    Dim client As TcpClient
    Dim DatenStream As NetworkStream
    'Byte-Array zum Senden von Nachrichten
    Dim NByte(256) As Byte  
    'Variable zum Erhalten von Nachrichten                      
    Dim responseData As [String] = String.Empty   
     Dim bytes As Integer
    Dim Buffer(1024) As Byte
    Dim SZ As Integer
    Dim TConn As Thread
    Dim TSenden As Thread
    Dim TLesen As Thread
 
'Aufruf der Routine aus dem Formular
Public Sub Telnet_Connect()
   TConn = New Thread(AddressOf Tel_Connect)   'Thread Aufruf für Telnet
   TConn.IsBackground = True
   TConn.Start()
End Sub
 
Private Sub Tel_Connect()
    Dim Verbund As Boolean
 
    Do While Verbund = False
        'Verbindung aufnehmen und in einer eigenen Variable speichern
         client = New TcpClient(TServer, Port)
         client.NoDelay = False
         client.ReceiveBufferSize = 1024
         client.SendBufferSize = 256
         Verbund = client.Connected
    Loop
 
    'Erstellen eines Streamobjektes zum Lesen und zum Schreiben
    DatenStream = client.GetStream()
 
    TSenden = New Thread(AddressOf Nachricht_senden)
    TSenden.IsBackground = True
    TSenden.Start()
 
    TLesen = New Thread(AddressOf Nachricht_senden)
    TLesen.IsBackground = True
    TLesen.Start()
 
'telnet://<user>:<password>@<host>:<port>/
'aber egal was ich hier Eintrage=> Reaktion im Lesen immer gleich: ??!??`
 
    TNachricht = "telnet://user:pass@xy:23/ " & vbCrLf    
    Nachricht_senden()
    Nachricht_lesen()
    'stream.Close(): 'client.Close()
End Sub
 
     'login im Telnet/Senden von Nachrichten
Private Sub Nachricht_senden()
     'Nachricht wird in Byte-Array umgewandelt
     NByte = System.Text.Encoding.ASCII.GetBytes(TNachricht)
 
     'Senden der Nachricht an den Server (Byte-Array)
     DatenStream.Write(NByte, 0, NByte.Length)
 
     'DatenStream.Flush()
     Console.WriteLine("Sent: {0}", TNachricht)
End Sub
 
 
  'Empfangen von Telnet-Nachrichten
Private Sub Nachricht_lesen()
     responseData = String.Empty
      bytes = DatenStream.Read(NByte, 0, NByte.Length)
 
      'Umwandeln des Datenstrombytes in einen String
      responseData = System.Text.Encoding.ASCII.GetString(NByte, 0, bytes)
 
      'Lesen der Nachrichten aus dem Datenstrom
      DatenStream.Read(Buffer, 0, Buffer.Length)
 
 'hier bleibt das Programm nun hängen und im Buffer steht:  ??!??'
      responseData = System.Text.Encoding.ASCII.GetString(Buffer, 0, _
        Buffer.Length)
      Console.WriteLine("Received: {0}", responseData)
 End Sub
End Class
'Aufruf der Telnet Klasse im Formular

 Dim cTelnet As clsTelnet
 Private Sub frmTelnet_Load(sender As System.Object, e As System.EventArgs) _
   Handles MyBase.Load
      cTelnet = New clsTelnet
      cTelnet.Telnet_Connect()
  End Sub
Danke für die Hilfe
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Telnet - von Windows auf Unix zugreifen - Invoke oder Thread2.097jasmina04.04.12 12:22
Re: Telnet - von Windows auf Unix zugreifen - Invoke oder Th...1.446Preisser04.04.12 14:13
Re: Telnet - von Windows auf Unix zugreifen - Invoke oder Th...1.494jasmina10.04.12 11:15
Re: Telnet - von Windows auf Unix zugreifen - Invoke oder Th...1.482Preisser10.04.12 15:55

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel