vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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 - Fortgeschrittene
TCPClient.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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
TCPClient.GetStream.BeginRead und EndRead Probleme3.358ProXy25.08.09 14:00
Re: TCPClient.GetStream.BeginRead und EndRead Probleme2.388ModeratorDaveS25.08.09 20:44

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