Показать сообщение отдельно

  #17  
Старый 13.05.2010, 18:03
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

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

Цитата:
Сообщение от denjf  
Я не много не правельно выразил мысль про idhttp, это было сказанно к тому что он заторможенный по сравнению с winsock, поэтому я решил научится работать с winsock.

Код:
for i:=1 to d do html:=html+utf8toansi(buf[i]);
memo1.Lines.Add(html);
Почему не правельно? В мемо я получаю то что надо. Но немогу понять почему цикл так и продолжает работать.
idHTTP нормально работает, если им правильно пользоваться.
Все очень просто.
Этот код
Код:
repeat
FillChar(buf,SizeOf(buf),0);
d:=recv(Socket1,buf,SizeOf(buf),0);

for i:=1 to d do html:=html+utf8toansi(buf[i]);
memo1.Lines.Add(html);
until d<=0;
есть неправильным в том смысле, что ты постоянно добавляешь данные к переменной html, и выводишь ее в Memo. Получается, что некоторая часть страница в Memo будет отображаться несколько раз. В общем, надо перед цыклом for написать
Код:
html := '';
Цикл продолжает выполняться потому, что нужно в отправляемых заголовках написать не
Код:
Connection:Keep-Alive
А
Код:
Connection: close

Последний раз редактировалось Chrome~; 13.05.2010 в 18:11..
 
Ответить с цитированием