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

[Delphi][Sockets] проблемы с получением изображения
  #1  
Старый 04.08.2008, 07:42
Аватар для vvs777
vvs777
Познавший АНТИЧАТ
Регистрация: 16.11.2004
Сообщений: 1,257
Провел на форуме:
1331503

Репутация: 454


Отправить сообщение для vvs777 с помощью ICQ Отправить сообщение для vvs777 с помощью AIM
Exclamation [Delphi][Sockets] проблемы с получением изображения

Прошу помочь разобраться а то я че-то торможу не могу понять откуда берется г**но.

Delphi. Uses WinSock.
TCP. Connect на 80 порт, GET, save to file.

Код:
function wsrecvstring(mailsocket:TSocket; var L:Longint):string;
var
   buffer:array[1..64000] of byte;
   i:integer;
   buffstr:string;
begin
     buffstr:='';
     fillchar(buffer,sizeof(buffer),0);
     l:=winsock.recv(mailsocket,buffer[1],sizeof(buffer),0);
     if L>0 then
     for i:=1 to L do
     begin
          buffstr:=buffstr+chr(buffer[i]);
     end;
     try
        result:=buffstr;
     except
        result:='';
     end;
end;

...
heads:='';
heads:=wsrecvstring(mysock,L);
np:=1;
repeat
          s:=wsrecvstring(mysock,L);
          heads:=heads+s;
until l<1;
При этом в полученном содержимом (для хтмл-страниц оно неипет, а вот бинарники засирает)
иногда появляются конструкции вида
Цитата:
13#10 //CRLF
послед_3-4_символа
13#10 //CRLF
это типа слитно.
Например
Цитата:
HTTP/1.1 200 OK
...
Content-Type: image/jpeg

1000
яШяа JFIF...
- ср**ая тысяча
потом в том эе файле еще раз она же, потом f56, 5321, и в разных файлах свое. В конце 0 и неско CRLF подрял.
Откуда берется не ясно.
Данные (картинки и тестовые до 25кб - остальные не пробовал) с сервера приходят одним цельным пакетом (когда-то сталкивался с тем что на некоторых серваках заголовок идет одним пакетом, данные остальными, потом увидел что это не обязательно
и если это криво склеивать вместе...
хотя у меня не криво
heads:=heads+s; без мусора.
).

Может кто видел это раньше?
PS: предложения типа юзай wininet/indy/nm/fp не принимаются. Надо на сокетах и только.

Последний раз редактировалось Jes; 04.08.2008 в 12:43.. Причина: ;)
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не знаешь какой Linux выбрать? Есть проблемы с установкой *nix? Тогда тебе сюда... L0rd_Ha0S *nix 212 21.04.2010 04:56
Xss без Xss k00p3r Чужие Статьи 5 08.09.2008 15:53
Возникли проблемы в работе альтернативных клиентов Icq dinar_007 Мировые новости 4 11.02.2006 13:19
-----ПРОБЛЕМЫ с КОНТАК ЛИСТОМ ------ De1eT ICQ 7 17.08.2004 03:19



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


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




ANTICHAT.XYZ