Avatar billede wtd_nielsen Nybegynder
30. marts 2010 - 11:55 Der er 15 kommentarer og
1 løsning

Billedeoverførsel med wcf

Hej.
Er der nogen der har erfaring med at sende billeder med WCF?
Jeg skal lave et program det blandt andet skal sende billeder fra en klient til en server. Serveren skal så igen sende billeder videre til andre klienter (når klienterne spørger efter billederne). Der skal også sendes andet information, men disse er blot en række strings.

Har overvejet at lave egen protokol med sockets, men vil i første omgang gerne prøve mig med WCF.

I første omgang skal systemet kun kører på et lokalt system, men senere skal det gerne kunne sende informationer til en webside.

skal man bruge en service der har en metode der returnerer byte array, streams eller hvordan gør man?
Avatar billede arne_v Ekspert
30. marts 2010 - 14:46 #1
et billede er fundamentalt bare en byte[]
Avatar billede arne_v Ekspert
30. marts 2010 - 14:47 #2
jeg ville nok bruge plain HTTP GET til at hente billeder med - du har ikke meget nytte af web service funktionaliteten
Avatar billede janus_007 Nybegynder
30. marts 2010 - 21:21 #3
Ja du skal sende et bytearray, men hvorfor vælger du at sende billeder på den måde? Ikke at det er rigtigt eller forkert, er bare nysgerrig :)
Avatar billede wtd_nielsen Nybegynder
30. marts 2010 - 22:09 #4
Det er for at slippe for at lave egen protokol, og så for at det skal være nemt at udvide/vedligeholde. Jeg er ny i c# (kommer fra java), så kender ikke alle teknikker i C#. I java er der RMI, hvilket er lidt det jeg ledte efter.

Hvordan ville i gribe situationen an?
Billederne skal vises på storskærme som hver klient er knyttet til

Jeg har lavet et forsøg med at overfører et jpeg billede som gemmes i en stream, og på klienten konventeres billedet om til et jpeg igen og gemmes på HD. Jeg har altså lavet en service der har en metode med en Stream som returværdi..
Er det bedre med et byte array?
Avatar billede wtd_nielsen Nybegynder
30. marts 2010 - 22:11 #5
altså en klient har een skærm
Avatar billede arne_v Ekspert
30. marts 2010 - 22:21 #6
C# remoting over TCP eller C# WCF over TCP svarer til Java remoting.

Jeg ville heller ikke bruge Java RMI til fil overfoersel.

Jeg ville som sagt:
- lave de komplekse kald til en WCF web service
- lave fil hentning direkte til en simpel .aspx eller .ashx

Et byte array kan med garanti serialiseres. Jeg har ingen anelse om hvad der sker med en stream. Derfor ville jeg til enhver tid vaelge byte array som transport format.
Avatar billede wtd_nielsen Nybegynder
30. marts 2010 - 22:47 #7
ok, hvorfor .aspx eller .ashx?
er det tanken at det så er let for webservere at hente billeder?

Jeg kender ikke så meget til det, er i gang med at sætte mig ind i en række emner i c#
Avatar billede arne_v Ekspert
30. marts 2010 - 23:11 #8
Mindre overhead.
Avatar billede janus_007 Nybegynder
30. marts 2010 - 23:42 #9
wtd_nielsen -> nu skriver du program, mener du en WinApplikation og altså ikke ASP.NET? (nu er vi i C# forum, hvilket er en lidt forunderlig navngivning :) )

Anyway...
Hvis det er en WinApplikation så ville jeg helt klart gå efter WCF-løsningen og så encode med base64 i bytearray.
Avatar billede janus_007 Nybegynder
30. marts 2010 - 23:55 #10
Nåjo... Og så naturligvis bruge Tcp, altså netTcpBinding i dit endpoint, på den måde behøver du slet ikke serialisere noget og hastighedsmæssigt overstiger det naturligvis http, men også .Net Remoting mv.
Avatar billede wtd_nielsen Nybegynder
31. marts 2010 - 08:37 #11
Det er en WinApplikation
Avatar billede arne_v Ekspert
31. marts 2010 - 20:04 #12
Hvorfor bruger du saa ikke en simpel socket (TcpListener/TclClient) ?
Avatar billede arne_v Ekspert
26. april 2010 - 02:55 #13
wtd?
Avatar billede wtd_nielsen Nybegynder
26. april 2010 - 08:29 #14
Hej arne, har valgt at løse det med socket. du kan smide et svar. WCF fik jeg alligevel ikke til at fungere ordentligt.
Avatar billede arne_v Ekspert
26. april 2010 - 15:05 #15
svar
Avatar billede arne_v Ekspert
13. juni 2010 - 04:59 #16
så mangler du bare at acceptere svaret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester