Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2013, 23:14   #1
kostya67
Пользователь
 
Регистрация: 19.06.2013
Сообщений: 49
По умолчанию Удаленный просмотр экрана

Написал программу клиент сервер для просмотра экрана пользователя удаленно, но после запуска пройдет немного времени и вылезет ошибка: Недостаточно памяти.
Посмотрите в чем ошибка
Вложения
Тип файла: rar Удаленный доступ.rar (145.7 Кб, 61 просмотров)

Последний раз редактировалось kostya67; 28.08.2013 в 23:17.
kostya67 вне форума Ответить с цитированием
Старый 28.08.2013, 23:29   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Наверное в том, что недостаточно памяти. Подключайте FastMM, и смотрите где утекает.
Человек_Борща вне форума Ответить с цитированием
Старый 28.08.2013, 23:32   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
MyJpeg.SaveToFile('Screen.jpg');
Вай... Ты это брось.
Зачем сохранять в файл, и читать потом в поток, если можно сразу в поток сохранить?.
Цитата:
после запуска пройдет немного времени и вылезет ошибка
После запуска чего?
Ты можешь запустить свои проги из под отладчика, и посмотреть где недостаточно памяти.

Еще такой момент: TClientSocket не умеет получать все сразу, ему возможно требуется склейка (http://yandex.ua/yandsearch?text=TCl...oc=10&lr=20554)
Не исключено (я внимательно не смотрел) что причина в этом.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2013, 06:53   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

у тебя логика сервера одноклиентная...
как только влетит второй клиент или отвалится первый то все ломается! кроме того нет ни одного try/finally

следующий вопрос автора будет- как увеличить FPS... 100%

Код:
procedure TForm1.getscreen(Socket: TCustomWinSocket);
var
  MS:TmemoryStream;
  MyJpeg: TJpegImage;
  bmp: Graphics.TBitmap;
  DC: HDC;
begin
  MS := TMemoryStream.Create; // Создаём буфер для файла
  try
    MyJpeg:= TJpegImage.Create;
    try
      bmp:=Graphics.TBitmap.Create;
      try
        bmp.Height:=Screen.Height;
        bmp.Width:=Screen.Width;
        DC:=GetDC(0);  //Дескpиптоp экpана
        bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SRCCOPY);
        ReleaseDC(0, DC);
        bmp.IgnorePalette:=true;
        MyJpeg.Assign(bmp);
      finally
        bmp.Free;
      end;
      MyJpeg.SaveToStream(MS);
    finally
      MyJpeg.free;
    end;
    MS.Position := 0; // Переводим каретку в начало файла
    // Посылаем информацию о файл (команда # название # размер)
    Socket.SendText('file#'+'Screen.jpg'+'#'+IntToStr(MS.Size)+'#');
    Socket.SendStream(MS);
  finally
    MS.Free;
  end;
end;
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 29.08.2013, 07:04   #5
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

вот 5 лет назад было так
http://www.delphimaster.ru/cgi-bin/f...1227604925&n=4
получилось типа так, даже шевеление мышки и месаджинг
Вложения
Тип файла: zip NetScreen.zip (155.8 Кб, 99 просмотров)
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 29.08.2013 в 07:22.
Slym вне форума Ответить с цитированием
Старый 29.08.2013, 09:19   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Ошибка вылазит из-за того, что оперативная память переполнина. Оптимизируйте программу.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленный доступ manula Работа с сетью в Delphi 0 04.10.2012 15:38
Удаленный доступ... romedal7 Операционные системы общие вопросы 2 03.05.2012 14:01
Удаленный доступ bookkc Фриланс 9 20.02.2010 17:44
Удаленный файлменеджер WOWka777 Работа с сетью в Delphi 1 03.09.2009 16:09
Удаленный доступ NDmitryN Помощь студентам 1 17.05.2009 03:06