На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Передача graihics по сети
    Присоветуйте, специалисты, как лучше
    всего (в смысле быстрее) передать объект
    graphics (в смысле изображение) по сети.
    Пробовал и NetworkStream+Socket и .NET Remoting
    но как-то не получается.
      Это только набросок

      Код клиента
      ExpandedWrap disabled
        <br>Bitmap bmp=new Bitmap(100,100);//Размер<br>Graphics g=Graphics.FromImae(bmp);<br><br>g.DrawXXX(...);<br>...<br>...<br>//Рисуем что надо<br><br>NetworkStream ServerConnection="DOMAIN\\COMPUTER";<br>string RemoteAddress;<br>Guid id;<br>Socket skt=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.IP);<br>IPEndPoint iep=new IPEndPoint(IPAddress.Any,8749);<br>skt.Blocking=true;<br>skt.Connect(new IPEndPoint(Dns.Resolve(RemoteAddress).AddressList[0],8749));<br>ServerConnection=new NetworkStream(skt);<br>BinaryFormatter bf=new BinaryFormatter();<br>bf.Serialize(bmp);<br>/// Всё, отправлено<br>


      Код сервера (мультипоточный)
      ExpandedWrap disabled
        <br>public void ListenerThread()<br>{<br>Socket active,skt=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.IP);<br>skt.Blocking=true;<br>skt.Bind(new IPEndPoint(IPAddress.Any,8749));<br>skt.Listen(10);<br>while(true)<br>{<br>active=skt.Accept();<br>Worker w=new Worker(active);<br>Thread t=new Thread(new ThreadStart(w.Handle));<br>t.Start();<br>}<br>}<br><br>public sealed class Worker<br>{<br>private NetworkStream strm;<br>public Worker(Socket incoming)<br>{<br>strm=new NetworkStream(incoming);<br>}<br>public void Handle()<br>{<br>BinaryFormatter bf=new BinaryFormatter();<br>Console.WriteLine("Wow, i've got somethig!")<br>object o=bf.Deserialize(strm);<br>if(o is Bitmap){<br>Console.WiriteLine("Yo! It's a bitmap");<br>}<br>}<br>}<br><br>
        Понял, но есть проблема: сериализация по сети Bitmap'а
        это, наверное, медленно.
        Нельзя ли записать graphics в поток в формате PNG ?
        Для меня производительность критична
          Не так, стандартная сериализация - это медленно :). Попробуй сам написать форматтер со сжатием.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0198 ]   [ 16 queries used ]   [ Generated: 28.04.24, 05:37 GMT ]