Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Stream gleichzeitig lesen und schreiben. (https://www.delphipraxis.net/65469-stream-gleichzeitig-lesen-und-schreiben.html)

skunker 16. Mär 2006 22:31


Stream gleichzeitig lesen und schreiben.
 
Hallo,

ist es möglich, dass man in einem Stream (ob Memory oder File ist egal) direkt schreiben kann und gleichzeitig davon einen Teil auslesen kann, diesen z.B. verschicken kann und den stream dann wieder so zu lehren, dass genau der nächste Teil ausgelesen wird ?

Also z.B. folgends:

Ich schreibe was in den stream -> der stream wird gleichzeitig gelesen -> versickt -> die nächsten daten werden aus dem Stream gelesen und werden auch verschickt.


Wenn jemand natürlich direkt eine Lösung hat, wie ich in einem Stream was schreiben kann, der direkt übers Netzwerk geschickt wird und ausgelesen wird, so wäre ich sehr froh darüber.

Ich möchte eine Art wie Skype machen. Und die Bass.dll schreibt ja in einen MemoryStream. So dachte ich das ich den gleichzeitig direkt weiterschicke.

Oder wenn jemand ne gute Komponente kennt, welche nichts kostet, und mir ermöglicht VoIP zu benutzen (ohne Phone, nur Headset am PC) so wäre ich ebenfalls erfreut.

Danke im Voraus!

mfg
skunker

SirThornberry 17. Mär 2006 05:27

Re: Stream gleichzeitig lesen und schreiben.
 
natürlich ist das Möglich. TStream besitzt die Methoden Read und Write. Mit diesen beiden Methoden kannst du die Daten lesen und schreiben. Und um an die gewünschte Position im stream zu gelangen wo die Daten stehen kannst du das Property "Position" nutzen.

marabu 17. Mär 2006 06:06

Re: Stream gleichzeitig lesen und schreiben.
 
Guten Morgen.

Ich glaube, dass skunker die Methoden Read und Write eines Streams kennt. Wenn ich die Frage richtig verstehe, dann sucht er nach einer Möglichkeit den socket i/o über ein stream interface abzuwickeln. Das ist grundsätzlich möglich, allerdings muss man dazu eine neue Klasse von TMemoryStream ableiten, die ein buffer switching für den Sende- und Empfangsbetrieb realisiert. Das ist nicht sehr aufwendig, aber wenn man die Indy TCP-Komponenten verwendet, dann kann man sich sogar diesen Aufwand sparen - dort erledigt das der IoHandlerStream.

Grüße vom marabu

th_bone 17. Mär 2006 08:13

Re: Stream gleichzeitig lesen und schreiben.
 
Hi,

ja funktioniert, hatte schon eine ähnliche Frage zu Filestreams - Lösung siehe hier:

stream sharen

cu

Ralf

skunker 17. Mär 2006 15:44

Re: Stream gleichzeitig lesen und schreiben.
 
Dann könnte ich ein VoIP ja so realisieren:

Mit der bass.dll wird aufgenommen.
der stream wird dann bei der indy komponente in den handle stream geschoben und verschickt und der client gibt das mit der bass.dll wieder aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz