| |

VB.NET - FortgeschritteneTCPClient.GetStream.BeginRead und EndRead Probleme | |  | Autor: ProXy | Datum: 25.08.09 14:00 |
| Guten Tag,
ich habe einen TCPListener der beliebige TCPClients verbinden lässt und dann von der Verbindung liest. Ich lese asynchron mit TCPClient.GetStream.BeginRead, dort liegt mein erstes Problem:
Ich muss BeginRead ein Byte-Array übergeben, welches dann beim Lesen gefüllt wird. Im Callback weiss ich anschliessend, wie viele Bytes gelesen wurden und kann den entsprechenden Teil aus dem Array auslesen. Nun muss ich das Byte-Array ja aber wohl global machen, damit ich im Callback darauf zugreifen kann. Was aber, wenn mehrere Clients gleichzeitig schreiben? Es könnte doch vorkommen, dass der Buffer überschrieben wird, bevor ich den Inhalt ausgewertet habe, oder nicht?
Sollte ich besser für jeden TCP-Client ein eigenes Byte-Array bereitstellen?
Mein zweites Problem tritt dann auf, wenn mehr Daten ankommen, als der Buffer aufnehmen kann. In diesem Fall soll ich laut MSDN DataAvailable abfragen und loopen, bis der Wert 0 ist. Da das ganze wiederum asynchron ist, muss ich mir doch das erste Paket auch wieder global merken, bis alle anderen Pakete eingetroffen sind. Und da nicht garantiert ist, dass alle Pakete eines Clients nacheinander gelesen werden, müsste ich auch diese Daten zu jedem TCP-Client zuordnen?
Was würdet ihr also tun? Eine eigene Klasse mit dem TCP-Client, und zwei Byte-Arrays? Vorteil wäre, dass ich ein Objekt der Klasse in das ASyncResult beim BeginRead setzen könnte..ob das aber der richtige Ansatz ist?
Danke,
Stefan |  |
 | 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! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 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
|
|