ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 05.04.2010, 23:01
Аватар для M_script_
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме:
1819761

Репутация: 180
Отправить сообщение для M_script_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от GhostOnline  
Кстати реальный пример того что библиотеки типа инди не хуже винсок.
А ты запусти 1000 потоков в проге, написанной на инди и сразу поймешь, чем инди хуже
 
Ответить с цитированием

  #22  
Старый 06.04.2010, 00:10
Аватар для GhostOnline
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

А нахрена 1000 потоков если и 300 упирается в лимит траффа?

Инди дохрена процессорного времени отбирает?

Последний раз редактировалось GhostOnline; 06.04.2010 в 00:16..
 
Ответить с цитированием

  #23  
Старый 06.04.2010, 02:07
Аватар для M_script_
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме:
1819761

Репутация: 180
Отправить сообщение для M_script_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от GhostOnline  
А нахрена 1000 потоков если и 300 упирается в лимит траффа?
Это от канала зависит и от размера страниц. Может и 1к потоков не весь канал забивать, примеры есть.

Цитата:
Сообщение от GhostOnline  
Инди дохрена процессорного времени отбирает?
Слишком много ошибок начинает появляться при большом количестве потоков.
 
Ответить с цитированием

  #24  
Старый 06.04.2010, 02:29
Аватар для Jingo Bo
Jingo Bo
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме:
604635

Репутация: 15
По умолчанию

Цитата:
Слишком много ошибок начинает появляться при большом количестве потоков.
Нет, проверял, даже при большом количестве (+ 400) разницы нет. Проблема с инди в том что много логических ошибок, у меня на 9 основные исправлены, пока не замечал. А так использовать можно

И кстати если при большом количестве у вас начинает в инди сыпаться мног ошибок - скорее всего плохая синхронизация потоков. Есть в инди одно узкое конечно место где все потоки сходятся, но там всё идеально сделано.(Файл IdComponent.pas, создание класса) Там речь идёт о критической секции и прикол в том что на XP(ещё где хз) при огромном количестве потоков эти критические секции(по сути системные объекты) глючат(пропускают потоки, когда главный поток блокирует), не объяснимо но факт. Может там трабла, я хз.
 
Ответить с цитированием

  #25  
Старый 06.04.2010, 02:30
Аватар для Jingo Bo
Jingo Bo
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме:
604635

Репутация: 15
По умолчанию

Цитата:
Это от канала зависит и от размера страниц. Может и 1к потоков не весь канал забивать, примеры есть.
Не помню какое на XP хом эдишн стоит ограничение на использование активных TCP соединений, но не высокое.
 
Ответить с цитированием

  #26  
Старый 06.04.2010, 04:00
Аватар для M_script_
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме:
1819761

Репутация: 180
Отправить сообщение для M_script_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от Jingo Bo  
И кстати если при большом количестве у вас начинает в инди сыпаться мног ошибок - скорее всего плохая синхронизация потоков.
С синхронизацией все нормально. В инди проблемы в основном при использовании прокси.

Цитата:
Сообщение от Jingo Bo  
Не помню какое на XP хом эдишн стоит ограничение на использование активных TCP соединений, но не высокое.
Я win2003 использую обычно )
 
Ответить с цитированием

  #27  
Старый 07.04.2010, 00:07
Аватар для [stranger]
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

Репутация: 28
Отправить сообщение для [stranger] с помощью ICQ
По умолчанию

как плавно съехали с gzip..
по сабжу: что-то GZDecompressStr не хочет работать с результатом GZCompressStr.. Data Error! В чем прикол?
 
Ответить с цитированием

  #28  
Старый 17.04.2010, 20:48
Аватар для nick1000
nick1000
Новичок
Регистрация: 10.05.2009
Сообщений: 8
Провел на форуме:
285610

Репутация: 5
По умолчанию

Вот нашел в нете функцию позволяющую распаковывать gzip без заголовка(10 байт) и окончания (8 байт=CRC32+длинна исходного текста). На залил ру ответ без окончания.

а вообще ошибка возникала из-за того что в TZDecompressionStream используется InflateInit_ в котором по-умолчанию стоит windowBits=15, а нужно windowBits=-15 , что и указывается в InflateInit2_
(хотя сам адлер пишет что этот параметр должен быть в диапазоне 8..15).

Вот код:

Код:
function InflateInit2(var stream: TZStreamRec; windowBits: Integer): Integer;
begin
  result := InflateInit2_(stream,windowBits,ZLIB_VERSION,SizeOf(TZStreamRec));
end;


function ZDecompressCheck(code: Integer): Integer;
begin
  Result := code;

  if code < 0 then
  begin
    raise EZDecompressionError.Create(_z_errmsg[2 - code]);
  end;
end;

procedure GZDecompress(const inBuffer: Pointer; inSize: Integer;
  out outBuffer: Pointer; out outSize: Integer; outEstimate: Integer = 0);
var
  zstream: TZStreamRec;
  delta  : Integer;
begin
  FillChar(zstream,SizeOf(TZStreamRec),0);

  delta := (inSize + 255) and not 255;

  if outEstimate = 0 then outSize := delta
  else outSize := outEstimate;

  GetMem(outBuffer,outSize);

  try
    zstream.next_in := inBuffer;
    zstream.avail_in := inSize;
    zstream.next_out := outBuffer;
    zstream.avail_out := outSize;

    ZDecompressCheck(InflateInit2(zstream, -15));

    try
      while ZDecompressCheck(inflate(zstream,Z_NO_FLUSH)) <> Z_STREAM_END do
      begin
        Inc(outSize,delta);
        ReallocMem(outBuffer,outSize);

        zstream.next_out := PAnsiChar(Integer(outBuffer) + zstream.total_out);
        zstream.avail_out := delta;
      end;
    finally
      ZDecompressCheck(inflateEnd(zstream));
    end;

    ReallocMem(outBuffer,zstream.total_out);
    outSize := zstream.total_out;
  except
    FreeMem(outBuffer);
    raise;
  end;
end;


function GZDecompressStr(const s: AnsiString): AnsiString;
var
  buffer: Pointer;
  size  : Integer;
begin
  GZDecompress(PChar(s),Length(s),buffer,size);

  SetLength(result,size);
  Move(buffer^,result[1],size);

  FreeMem(buffer);
end;


procedure TForm1.Button6Click(Sender: TObject);
var ss,s,reply:string;
begin

Здесь получаем ответ через winsocks
........
    reply:=copy(reply,pos('6da',reply),1757);
 //или по-другому. Главное чтобы в reply остался '6da' . 

    s := Copy(reply, 11, Length(reply)-10);
    ss:=GZDecompressStr(s);
    Memo1.Text:=ss;
end;

Последний раз редактировалось nick1000; 18.04.2010 в 19:07..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки Delphi ][imer С/С++, C#, Delphi, .NET, Asm 48 18.04.2010 09:05
Литература Delphi Sams С/С++, C#, Delphi, .NET, Asm 2 19.03.2010 19:46
Books PSalm69 Избранное 248 27.10.2009 04:52
Virus.Win32.Induc.a или "Снова записки новичка" _=(mac)=_ Защита ОС: вирусы, антивирусы, файрволы. 5 24.08.2009 23:34
Новая версия Avant Browser 10.2 Build 51 Zek Soft - Windows 3 29.04.2006 19:52



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ