Laden...

Wie kann ich einen Musikserver/client in C# erstellen, bei dem ich vom Client auch abspielen kann?

Erstellt von BierDav vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.221 Views
BierDav Themenstarter:in
38 Beiträge seit 2019
vor 5 Jahren
Wie kann ich einen Musikserver/client in C# erstellen, bei dem ich vom Client auch abspielen kann?

Hallo,
ich möchte gern einen Musikserver machen bei dem ich auf der Client Seite einen Stream bekomme und den auch abspielen kann. Aber ich hab noch keine Ahnung wie das funktionieren soll. vielleicht kann mir wer helfen einen so einen Server bzw. Client zu machen?

Allgemeine Infos:
-muss nur MP3 unterstützen
-soll verschlüsselt sein
-evtl. Benutzer

Wäre sehr nett wenn mir hierbei jemand helfen würde. Danke schon im voraus. 😁

LG BierDav

Trifft eine Programmiererin ihre Freundin und die Freundin fragt: "Mit welchen Typen hängst du so in letzter Zeit rum?" Die Programmiererin antwortet: „integers, booleans und strings“

H
38 Beiträge seit 2019
vor 5 Jahren

Die mp3 datei (wenn nicht zu groß) senden dh bytes auslesen und


byte[] musikDateiByteArray = File.ReadAllBytes("blub");//am besten über FileStream auslesen
Stream.Write(musikDateiByteArray);

wenn zu groß vl(ka ob das so geht hab's nicht ausprobiert) einfach alle bytes der Musikdatei einlesen
währendessen aber gleich per Stream senden
dh


while(fileStream.HasNextByte()) //***BEISPIEL
{
byte next = fileStream.Next();
stream.WriteByte(next);
}

und dann ClientSide die empfangenen bytes anfangen abzuspielen Wenn das geht

Mit der Verschlüsselung (AES) wär das per Stream so möglich


class AesStream
    {
        public CryptoStream decryptStreamRead;
        public CryptoStream encryptStreamWrite;

        private NetworkStream _baseStream;
        private byte[] _key;

        public AesStream(NetworkStream stream, byte[] key)
        {
            _baseStream = stream;
            _key = key;
            Rijndael aes = this.GenerateAES(key);

            ICryptoTransform encryptor = aes.CreateEncryptor();
            ICryptoTransform decryptor = aes.CreateDecryptor();

            encryptStreamWrite = new CryptoStream(_baseStream, encryptor, CryptoStreamMode.Write);
            decryptStreamRead = new CryptoStream(_baseStream, decryptor, CryptoStreamMode.Read);
        }

        private Rijndael GenerateAES(byte[] key)
        {
            return new RijndaelManaged
            {
                Mode = CipherMode.CFB,
                Padding = PaddingMode.None,
                KeySize = 128,
                FeedbackSize = 8,
                Key = key,
                IV = key
            };
        }

        public byte[] GetKey()
        {
            return _key;
        }
    }

5.657 Beiträge seit 2006
vor 5 Jahren

Du fragst hier einfach so nach der Umsetzung von Client-Server-Technologien, Streaming, MP3-Player, Benutzerverwaltung und Verschlüsselung. So funktioniert aber ein Forum nicht, wer soll dir denn da helfen können? Versuch doch erstmal, dich wenigstens grundlegend zu jedem dieser Themen zu belesen.
Siehe dazu auch: [Hinweis] Wie poste ich richtig?

Weeks of programming can save you hours of planning

463 Beiträge seit 2009
vor 5 Jahren

Es ist in meinen Augen ein Fehler sich zu komplexe Themen zum Erlernen von Grundlagen zu suchen. ch denke es ist einfacher, wenn du dir erst einmal die Grundlagen aneignest bevor du dich an solch einem Projekt versuchst.