Hi, Das Programm ist in C#!! ich habe einen Clienten und einen Server programmiert.Die Verbindung funktioniert und auch das Filestream. Meine Frage ist: Ich würde gern ein Bild vom Server schicken und dieses SOFORT in einer PicturBox im Clienten anzeigen lassen. Mit welchen Stream geht man an die sache? Muss man die bytes auslesen und "per hand" umwandeln lassen? Danke im vorraus ^^' MfG Cedric Oettel
Hallo, im einfachsten Fall sollte das ungefähr so funktionieren: Bitmap newBitmap = Image.FromStream(tcpclient.GetStream()) as Bitmap; pictureBox1.Image = newBitmap; Ich weiß jetzt natürlich nicht wie dein Client aussieht deshalb musst du das höchstwahrscheinlich anpassen. Bin mal von TcpClient aus System.Net.Sockets ausgegangen. gruß Pepe
also ich hab das jetzt eingebaut.Scheint jetzt auch logisch ^^' Jedoch wenn ich Bitmap bmp = Image.FromStream(clientsocket. eingebe erhalte ich nur -GetType -GetHashCode -GetSocketOption und die anderen....(Recieve,Connect,Shutdown usw...) Weiß jetzt nich wie ich das anwenden soll. MfG Cedric Oettel
ahh sorry...mein Fehler...ich hab eine Verbindung über nen Socket gemacht,statt eines TcpClientens. Was is der unterschied zwischen Socket und TcpClient? MfG Cedric Oettel
Hi für das Netzwerk ist beides das gleiche. Beide bieten eine TCP/IP Verbindung an (TcpClient in Verbindung mit TcpListener). Die Klasse TcpClient abstrahiert die Verbindung für dich als Programmierer etwas besser da du wirklich einen Stream hast und nicht mehr einzelne Pakete hin und herschieben mußt sondern eben auf einem Stream arbeitest. Socket implementiert das Standard TCP Interface wie es auf allen Netzwerk- und TCP fähigen Betriebssystemen vorhanden sein sollte. TcpClient ist einfach etwas komfortabler. Matthias
@ Matthias ahh danke.... Also ich hab jetzt mal vom Server aus eine .JPG file per NetworkStream gesendet.Beim Clienten erhalte ich diese auch als Bytes. Das umwandeln in eine Bild datei ist auch nicht (mehr) das Problem. da nutz ich den MemoryStream und Image.FromStream Das Bild wird jedoch nicht komplett dargestellt. An dem Buffer kann es eigentlich nicht liegen,weil ich den schon mehrfach erhöht hatte. Ich denke,das der Stream nur eine bestimmte Länge überträgt,die leider in einer "long" festgelegt werden musste. Woran kann es liegen? Wenn ihr den Quellcode dazu benötigt,dann bitte sagen,dann setzt ich ihn noch rein. MfG Cedric Oettel
Hi keine Ahung. Aber du kannst den Code ja mal hier rein stellen dann werf ich mal einen Blick drauf und teste das hier lokal. Matthias
also ich hab den Quelltext von folgender Seite. http://www.uni-koblenz.de/~hagbard/csharp/csharp_03.html genau diesen. ACHTUNG!!! bei Firefox wird die Seite total falsch dargestellt. Beim Internet Explorer nicht. Die Datei ,die ich schicke ist etwa 20kb groß. die Umwandlung lautet dann. MemoryStream ms = new MemoryStream(buffer,0,rec.Length); Image im = Image.FromStream(ms); this.pictureBox2.BackgroundImage = im; Ich möchte mich entschuldigen,dass ich einen kleinen code hier gepostet habe und eine URL!!! MfG Cedric Oettel
LOL, ist das wieder Firefoxgülle oder warum ist die Darstellung so sch...?
Hi also irgendwie kann ich nicht erkennen wo da ein Image rübergeschoben werden soll. Matthias
ahh ok. Also beschreib jetzt mal den Programmaufbau. ACHTUNG!!!! Bin noch ein ziemlicher Noob in C# und habe einen schrecklichen Programmierstile. Also: Ich möchte ja Bilder(vom Desktop) aufnehmen und dann gleich per Stream über internet an einen Clienten schicken,der dann diese Bilder gleich in einer Picturebox oder als hintergrundbild der Form sieht. Also hab mir so gedacht,dass ich das über die screenshotfunktion machen. Die Funktion wird per Timer aller 200 ms ausgelöst,damit ein flüssiges Bild entsteht. Das Problem beim übertragen ist,das die verbindung ständig sein muss. Ich habe meinen komplette Quelltext jetzt doch mal angehangen... Bei Fragen(ich hoffe doch) BItte einfach melden
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.