| |

VB.NET - Ein- und UmsteigerRe: Permanentes Einlesen über TCP Socket | |  | Autor: Preisser | Datum: 05.07.13 14:22 |
| Hallo,
wenn man eine TCP-Verbindung aufbaut, dann wird man eigentlich meistens dauerhaft einlesen, sonst würde die Verbindung ja nichts bringen - man will die Daten, die der Gegenüber schickt, so schnell wie möglich erhalten (außer wenn man beispielsweise eine Geschwindigkeitsdrosselung einbauen will, um sich vor DoS zu schützen, oder bei Protokollen wie HTTP, die nach dem Request-Response-Schema aufgebaut sind).
Im einfachsten Fall benutzt man dafür einen separaten Lesethread, der eben ständig vom TCP-Stream liest, bis nichts mehr ankommt, also sowas wie
' Verbinden...
Dim tcp As New TcpClient("www.vbarchiv.net", 80)
'Verbindung hergestellt
Dim stream As NetworkStream = tcp.GetStream()
'Hier kann jetzt z.B. auch ein Sendethread gestartet werden
'Lesen
Dim buffer As Byte() = New Byte(4095) {}
Dim bytesRead As Integer
While True
bytesRead = stream.Read(buffer, 0, buffer.Length)
If bytesRead <= 0 Then Exit While
' Irgendwas mit den Bytes machen...
End While
' Verbindung wurde geschlossen Zum Senden müsste man dann noch einen separaten Sendethread starten.
Wenn nach dem Empfangen eines Datenpakets dieses beispielsweise in der GUI weiterverarbeitet werden soll, müsste man noch BeginInvoke(...) bzw. Invoke(...) verwenden.
Wenn man nicht extra Threads für BIO (Blocking I/O) verwenden will, die dauerhaft einer Verbindung zugewiesen sind, kann man auch die Async-Methoden verwenden, die dann NIO (Non-blocking I/O) verwenden - dort wird nur dann aus einem Threadpool ein Thread verwendet, wenn Daten angekommen sind bzw. gesendet wurden, und dieser Thread wird anschließend sofort wieder in den Threadpool zurückgegeben.
Beitrag wurde zuletzt am 05.07.13 um 14:31:02 editiert. |  |
 | 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 |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|