vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Socket Methode, Eingangspuffer 
Autor: Heckenpenner
Datum: 25.04.12 08:55

Guten Morgen zusammen,

ich empfange über einen Socket Daten.

Dies führe ich wie in der MSDN beschrieben wie folgt aus:

bytes = New Byte(1024) {}
Dim bytesRec As Integer = lSocket.Receive(bytes)

Nun weiß ich im allgemeinen aber nicht, wie groß "bytes" wird.

Kann ich das ganze variabel definieren?

Habe es zunächst wie folgt gelöst:

Dim bytes() As Byte = New [Byte]() {}

Technisch gesehen funktioniert es, aber ist das ganze auch syntaktisch richtig?

Würde mich über kurzes Feedback freuen.

Boris
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Socket Methode, Eingangspuffer 
Autor: Preisser
Datum: 25.04.12 11:13

Hallo,

das Byte-Array, in das die Receive-Methode schreibt, dient ja nur als Puffer, und die Methode liefert die Anzahl der gelesenen Bytes zurück. Deswegen hat der Puffer normalerweise eine feste Größe wie z.B. 1-8 KB, und man wertet dann die Anzahl der gelesenen Bytes aus. Danach kannst du ja die Bytes z.B. wo anders hin schreiben, je nach dem, wofür du sie benötigst.

Die Zeile
Dim bytes() As Byte = New [Byte]() {}
dagegen legt nur ein Byte-Array mit 0 Elementen an, würde hier also nichts bringen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Socket Methode, Eingangspuffer 
Autor: Heckenpenner
Datum: 25.04.12 22:24

Okay, das habe ich geschnallt

Dies bringt mich nun zur zweiten Frage:

Kann ich die aus dem Socket in das Byte Array bis zum erreichen eines bestimmten Zeichens lesen?

Sprich "fülle das Byte Array mit den gelesenen Bytes aus dem Stream, bis im Stream ein 0D0A erreicht wurde"?

Daher auch der Ursprung meiner Frage.

Die Position eines 0D0A ist immer unterschiedlich und ich möchte das Byte Array nur bis genau dorthin füllen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Socket Methode, Eingangspuffer 
Autor: ModeratorRalfE (Moderator)
Datum: 26.04.12 07:39

Nein - deine Verarbeitung des Buffers bis zu deinem Zeichen obliegt dir. Sprich du müsstest selber prüfen, ob und wenn ja wo deine Zeichensequenz vorkommt - wenn gefunden dann Bereich davor abarbeiten, ansonsten auf nächsten Lesevorgang warten.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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