Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

05.04.2010, 23:01
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от GhostOnline
Кстати реальный пример того что библиотеки типа инди не хуже винсок.
А ты запусти 1000 потоков в проге, написанной на инди и сразу поймешь, чем инди хуже 
|
|
|

06.04.2010, 00:10
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
А нахрена 1000 потоков если и 300 упирается в лимит траффа?
Инди дохрена процессорного времени отбирает?
Последний раз редактировалось GhostOnline; 06.04.2010 в 00:16..
|
|
|

06.04.2010, 02:07
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от GhostOnline
А нахрена 1000 потоков если и 300 упирается в лимит траффа?
Это от канала зависит и от размера страниц. Может и 1к потоков не весь канал забивать, примеры есть.
Сообщение от GhostOnline
Инди дохрена процессорного времени отбирает?
Слишком много ошибок начинает появляться при большом количестве потоков.
|
|
|

06.04.2010, 02:29
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Слишком много ошибок начинает появляться при большом количестве потоков.
Нет, проверял, даже при большом количестве (+ 400) разницы нет. Проблема с инди в том что много логических ошибок, у меня на 9 основные исправлены, пока не замечал. А так использовать можно
И кстати если при большом количестве у вас начинает в инди сыпаться мног ошибок - скорее всего плохая синхронизация потоков. Есть в инди одно узкое конечно место где все потоки сходятся, но там всё идеально сделано.(Файл IdComponent.pas, создание класса) Там речь идёт о критической секции и прикол в том что на XP(ещё где хз) при огромном количестве потоков эти критические секции(по сути системные объекты) глючат(пропускают потоки, когда главный поток блокирует), не объяснимо но факт. Может там трабла, я хз.
|
|
|

06.04.2010, 02:30
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Это от канала зависит и от размера страниц. Может и 1к потоков не весь канал забивать, примеры есть.
Не помню какое на XP хом эдишн стоит ограничение на использование активных TCP соединений, но не высокое.
|
|
|

06.04.2010, 04:00
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от Jingo Bo
И кстати если при большом количестве у вас начинает в инди сыпаться мног ошибок - скорее всего плохая синхронизация потоков.
С синхронизацией все нормально. В инди проблемы в основном при использовании прокси.
Сообщение от Jingo Bo
Не помню какое на XP хом эдишн стоит ограничение на использование активных TCP соединений, но не высокое.
Я win2003 использую обычно )
|
|
|

07.04.2010, 00:07
|
|
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме: 612028
Репутация:
28
|
|
как плавно съехали с gzip.. 
по сабжу: что-то GZDecompressStr не хочет работать с результатом GZCompressStr.. Data Error! В чем прикол?
|
|
|

17.04.2010, 20:48
|
|
Новичок
Регистрация: 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)
|
|
|
|