Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> socket закачать несколько страниц 
:(
    Опции темы
Alabay
Дата 5.10.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



Не могу разобраться как с помощью TcpSocket'a закачать несколько страниц - допустим сначала получить текст ya.ru, а потом, как текст скачался загрузить страницу mail.ru и по окончанию загрузки сделать действие, например вывести окно, что все скачалось. Документацию смотрел, но видимо что-то не понял, ибо на англ языке все.., подскажите пожалуйста как решить данную проблему. На Indy тоже ничего не получилось, и к тому же он тяжелый.
PM MAIL   Вверх
SneG0K
Дата 5.10.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Ну сайты можно вполне получать с помощью IdHttp.
А инди не сложный, то ты просто не читал! 
PM WWW Skype   Вверх
Alabay
Дата 5.10.2008, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



да тяжелый я имел ввиду про библиотеку саму - большая она))
http - это IdHttp

var lData: TStringList;
    s:string;
begin
  lData.Add('[email protected]');
  lData.Add('pass=GfHjy7Y');
  Memo1.Lines.Text := http.Post('http://vkontakte.ru/login.php', lData);

выводит ошибку. Нужно что-либо ставить в настройках IdHttp?
PM MAIL   Вверх
SneG0K
Дата 5.10.2008, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Ээээ.... Ты конешно великодушно нас извини, телепаты в отпуске, но какую ошибку?
PM WWW Skype   Вверх
Alabay
Дата 9.10.2008, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



Ошибка про Access violation.. про память чето..
вот нашел более-менее пример, только разобраться не могу.. даже с комментами.. гг, аж ламмером себя чувствую))

как взаимосвязаны TClientSocket и TWinSocketStream?

Код

Var Sock : TClientSocket;
    Stream : TWinSocketStream;
    S, Stmp : String;
Begin
  Sock.ClientType := ctBlocking;
  Stream := TWinSocketStream.Create(Sock.Socket,60000);
  Sock.Host := 'www.example.com';
  Sock.Port := 80;
  Sock.Open;
  S := 'GET / HTTP/1.0'#13#10+  // Готовим запрос
       'Host: www.example.com'#13#10+
       'Cookie: name1=value1; name2=value2; name3=value3'#13#10+
       'Connection: Close'#13#10#13#10;
  Sock.Socket.SendBuf(S[1],Length(S));  // Отправляем запрос
  S := '';
  While True do
  Begin
    If Stream.WaitForData(50) then  // Ждем очередной пакет
    Begin
      L := ClientSocket.Socket.ReceiveLength;
      If L=0 then  // Дисконнект
      Begin
        Break;  // Значит все данные приняты... прервать цикл
      End;
      SetLength(Stmp,L);  // Готовим буфер для нового пакета
      Sock.Socket.ReciveBuf(Stmp[1],L);  // Получаем очередные данные
      S := S + Stmp;  // И добавляем их к уже полученным
  End;
  // И обрабатываем переменную S
End;

В коде есть пара ошибок, но исправив их все равно ничего не получается(((

Это сообщение отредактировал(а) Alabay - 9.10.2008, 23:14
PM MAIL   Вверх
Matematik
Дата 10.10.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Alabay
Код

procedure TForm1.Button1Click(Sender: TObject);
Var Sock : TClientSocket;
    Stream : TWinSocketStream;
    S, Stmp : String;
    L : Integer;
Begin
  Sock := TClientSocket.Create(nil);
  try
    Sock.ClientType := ctBlocking;
    Stream := TWinSocketStream.Create(Sock.Socket,60000);
    Sock.Host := 'www.example.com';
    Sock.Port := 80;
    Sock.Open;
    S := 'GET / HTTP/1.0'#13#10+  // Готовим запрос
         'Host: www.example.com'#13#10+
         'Cookie: name1=value1; name2=value2; name3=value3'#13#10+
         'Connection: Close'#13#10#13#10;
    Sock.Socket.SendBuf(S[1],Length(S));  // Отправляем запрос
    S := '';
    While True do
    Begin
      If Stream.WaitForData(50) then  // Ждем очередной пакет
      Begin
        L := Sock.Socket.ReceiveLength;
        If L=0 then  // Дисконнект
        Begin
          Break;  // Значит все данные приняты... прервать цикл
        End;
        SetLength(Stmp,L);  // Готовим буфер для нового пакета
        Sock.Socket.ReceiveBuf(Stmp[1],L);  // Получаем очередные данные
        S := S + Stmp;  // И добавляем их к уже полученным
      End;
    // И обрабатываем переменную S
    End;
  finally
    Sock.Free;
  end;
  ShowMessage(s);
end;

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.