Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C# (Visual C#, Mono) » Stream: 2 oder mehr Informationen versenden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.11.2013, 11:36 Uhr
~Triumph11
Gast


Hallo Forum ich störe mal wieder!

Und zwar möchte ich das Problem vom letzten Mal erweiter.
Kurze Beschreibung:
Eine Bluetoothübertrag übermitteln Logdateien von meinem PC and meinen Laptop. Jetzt möchte ich aber 2 Daten hintereinander versenden.
Und zwar, einen String und danach die Datei. Der String sagt meinem Laptop welche Art von Datei geschickt wird.
Es wird unterschieden zwischen Wichtig und Unwichtig.
Den String alleine bzw. die Datei alleine zu schicken ist kein Problem, nur wenn beides hintereinander weg geschickt werden soll, hängt sich das Problem auf oder es hagelt errors.

Hier meine bisherigen Versuche:

Sender:

Code:

Byte[] CommandBuffer = Encoding.ASCII.GetBytes(Command);
StreamCommand.Write(CommandBuffer, 0, CommandBuffer.Length);
StreamCommand.Flush();

Byte[] Buffer2 = new Byte[1024];
long TotalLength = ShareData.Length;
long CurrentLength = 0;
int Read;

do
{
   Read = ShareData.Read(Buffer, 0, Buffer.Length);
   StreamFile.Write(Buffer, 0, Read);
   CurrentLength += Read;
   ProgressBar.PerformStep();
}while (TotalLength != CurrentLength);



Empfänger:

Code:

byte[] Command = new byte[1024];
StreamCommand.Read(Command, 0, Command.Length);
char erhalten = Encoding.ASCII.GetString(Command)[0];

using (FileStream GetData = new FileStream(Path, FileMode.Create))
{
Byte[] Buffer = new Byte[1024];
int Read = Buffer.Length;

while (Read != 0)
{
Read = StreamFile.Read(Buffer, 0, Buffer.Length);

GetData.Write(Buffer, 0, Read);
}
GetData.Close();



Dieser Versuch hat leider nicht funktioniert. Ich dachte es liegt daran, dass der Stream nicht auf der Startposition steht und habe ihn mit Seek wieder dahin versetzt.
Zack, error. Seek kann ich bei diesem Stream nicht verwenden..

Ich habe noch weitere Versuche gestartet, z.B. habe ich 2 Streams durch
Client.GetStream();
erstellt nur leider sagen mir beide Seiten (Empfänger/Sender), dass der Stream auf der Gegenseite disposed ist.

Hat wer vielleicht einen Rat oder eine Idee wie ich es realisieren kann, den String von meiner Datei als Signalgeber zu senden?

Gruß Triumph11
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.11.2013, 12:28 Uhr
Tommix



Hallo,
Du setzt beim Empfang voraus, dass Command genau 1024 Byte lang ist. Ist das wirklich so? Ansonsten wäre an der Stelle wohl ein Enum die bessere Wahl (Enum Command {Wichtig; Unwichtig;};).

Gruß, Tommix

Dieser Post wurde am 22.11.2013 um 12:28 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.11.2013, 12:36 Uhr
~Triumph11
Gast


Hallo,

nein das ist natürlich nicht so. Ich habe die 1024 nur als Testwert verwendet, weil ich mir nicht sicher war, was ich genau nehmen werde.
Mittlerweile bin ich bei dem Entschluss, dass ich einzelne Buchstaben versende wie in etwa "W" und "U". Damit habe ich den Freiraum den ich brauche, falls ich weitere "Arten" hinzufügen möchte.
Das war aber nur eine Nebenanmerkung oder? Oder beeinflußt das wirklich das aneinander gereihte senden?

Gruß Triumph11
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.11.2013, 13:19 Uhr
~Triumph11
Gast


So ich bins nochmal.
Die Sache hat sich erledigt es funktioniert jetzt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C# (Visual C#, Mono) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: