Laden...

Natur eines Streams

Erstellt von Big Al vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.938 Views
B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 17 Jahren
Natur eines Streams

Hi,
ich versende über einen Stream sowohl kurze Befehle, als auch Byte-Arrays.
Mit den Arrays kann es ja zum Beispiel über ISDN etwas länger dauern.
Wenn jetzt also erst das Array und währenddessen auch ein String gesendet wird,
wird dann erst das Array übertragen und dann der string, oder wird der irgendwie "dazwischengeschoben", sodass die Daten verfälscht werden?
Vielen Dank,
Alexander

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.

H
240 Beiträge seit 2006
vor 17 Jahren

Ich weiss zwar nicht genau, was Du vor hast aber wär es nicht besser, sich erstmal den empfang von der Gegenstelle bestätigen zu lassen?

Auf der anderen Seite kann ich mir nicht vorstellen, dass die Datenpakete einfach mal so in der Leitung ihre Reihenfolge ändern. Klar, bei Lan schon aber bei ISDN sollte hinten das rauskommen, was du vorne reinschiebst.

MfG hulkstar

B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 17 Jahren

Die Frage war ein bisschen komisch gestellt, ich war in Eile und musste Mittagessen gehen. Also, ich schreibe in den Stream z.B.
"ich lade jetzt Datei bla.exe hoch", der Server macht sich für den Empfang der Datei bereit, aber serverseitig funzt ja alles...
Dann sendet der Client die Datei, was ja ne Weile dauern kann. Wenn also jetzt der Benutzer noch eine Datei hochladen will, während er die erste hochläd, schreibt er ja "ich lade jetzt Datei bla2.exe hoch". Gut wäre jetzt, wenn diese Nachricht z.B. in der Netzwerkkarte in eine Queue kommt und gesendet wird, wenn alles davor gesendet wurde, schlecht wäre, wenn es so wäre:
Array wird gesendet:
[..] steht für ein Byte der Datei:

[1][2][3]... "ich lade jetzt Datei bla2.exe hoch" ... [10][11]...

Ich hoffe, das war jetzt nicht wieder zu wirr, besser kann ichs aber nich erklären,
viele Grüße,
Alexander

/Edit: Ach ja, ich glaub Tcp/IP erledigt das mit den Empfangsbestätigungen

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.

B
1.529 Beiträge seit 2006
vor 17 Jahren

Da sagst du jetzt etwas, was du vorher nicht gesagt hast.
Nämlich, dass du per TCP/IP sendest. In welches Protokoll das wiederum gekapselt wird, braucht dich nicht zu interessieren.
Und das wiederum heißt: solange Sender und Empfänger jeweils eine neue Verbindung für einen neuen Transfer aufmachen, sind diese auf dem Anwendungs-Layer (also bei dir) auch getrennt.
Um den Rest kümmern sich Treiber und Netzwerkstack.

EDIT: spellchecks

B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 17 Jahren

Mmmmhhh, es gibt keine neue Verbindung.
Das Ganze ist ein Chat, mit dem man auch Dateien und Bilder versenden kann.
Sendet man also ein Bild/ eine Datei und chattet währenddessen, könnte es ja zu Komplikationen kommen. Leider habe ich keine ausreichend langsame Verbindung, um das mal auszuprobieren. Gibt es vllt. eine Möglichkeit, eine Netzwerkverbindung künstlich zu verlangsamen? Wenn nicht werde ich das Projekt mal bald hier im Projekteforum veröffentlichen und auf Reaktionen warten.
Vielen Dank für deine Hilfe!
Alexander

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.

B
1.529 Beiträge seit 2006
vor 17 Jahren

Mmmmhhh, es gibt keine neue Verbindung.

Dann erzeuge doch einfach eine neue Verbindung für neue Daten.

3.971 Beiträge seit 2006
vor 17 Jahren

Bei Gescheiten Netzwerkkarten, kannst du die Geschwindigkeit (10, 100, 1000 Mbit) nach belieben einstellen

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

B
Big Al Themenstarter:in
342 Beiträge seit 2006
vor 17 Jahren

Das Programm soll ein Chat sein, d.h. es muss immer eine Verbindung zum Server bestehen. Naja, wenn's dann mal online ist wird sich zeigen ob alles funktioniert, wie es soll 😁
Vielen Dank,
Alexander

Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.

F
3 Beiträge seit 2006
vor 17 Jahren

Original von Big Al
Mmmmhhh, es gibt keine neue Verbindung.
Das Ganze ist ein Chat, mit dem man auch Dateien und Bilder versenden kann.
Sendet man also ein Bild/ eine Datei und chattet währenddessen, könnte es ja zu Komplikationen kommen. Leider habe ich keine ausreichend langsame Verbindung, um das mal auszuprobieren.

Hi,

da ich auch mit Netzwerken bissl rumprobiere tut sich für mich hier eine Frage auf.
Wie schaffst du es bei TCP/IP wärend du ein Bild hochlädst noch zusätzlich Text zu übertragen?. Also ich meine wie hält das deine Server Komponente auseinander? 🤔

Danke schonmal für die Antwort

S
8.746 Beiträge seit 2005
vor 17 Jahren

Dafür gibt es zwei Lösungen:

  1. unterschiedliche Ports je nach Datentyp
  2. ein Protokoll auf einem Port, welches die Datentypen auseinanderhält