Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2012, 15:36   #1
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
Вопрос Правильно ли оформлен GET-запрос на WinSock?

Я недавно начал изучатьс сокеты, вот хочу формировать GET запрос, все работает, только очень медленно, html код выводится в memo в течении 2-3 мин, это долго. Я бы смог через indy за пару секунд вывести.
Не может быть что бы сокеты так долго работали, тут навеняка есть кокая то хитрость. Как это исправить?

Код:
procedure TForm1.Button1Click(Sender: TObject);
var sock: WSAData;
    socket1: TSocket;
    addr: TSockAddr;
    buff1: string;
    buff2: array[1..1024] of char;
    i,d: integer;
begin
if WSAStartup(MAKEWORD(2,2),sock)<>0 then
begin
  ShowMessage('Error inicialization');
  Exit;
end;
  socket1:=Socket(AF_INET,SOCK_STREAM,0);
if socket1 = INVALID_SOCKET then
begin
  ShowMessage('Error');
  Exit;
end;
  addr.sa_family:=AF_INET;
  addr.sin_addr.S_addr:=inet_addr(PChar('IP-ñåðâåðà'));
  addr.sin_port:=htons(80);
if connect(socket1,addr,SizeOf(addr))<>0 then
begin
  ShowMessage('Error connect');
  Exit;
end;
  Buff1:='GET / HTTP/1.1'#13#10+
          'host: parsers.info'#13#10+
          'Connection: close'#13#10+#13#10;
if send(socket1,buff1[1],length(buff1),0)=SOCKET_ERROR then
begin
  ShowMessage('Error sender');
  Exit;
end;
repeat
  FillChar(buff2,SizeOf(buff2),0);
  d:=Recv(socket1,buff2,SizeOf(buff2),0);
for i:=1 to d do
begin
  memo1.Text:=memo1.Text+Utf8ToAnsi(buff2[i]);
end;
until d<=0;
if CloseSocket(Socket1)<>0 then
  ShowMessage('Error closing');

end;
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно составить get запрос liquidon Работа с сетью в Delphi 2 27.03.2012 00:59
немогу правильно сформировать запрос Gul'ka SQL, базы данных 1 02.12.2011 09:48
как правильно оформить запрос D_e_n_n Microsoft Office Excel 3 24.03.2011 06:34
не могу сделать правильный пост запрос на winsock cable Работа с сетью в Delphi 0 10.07.2010 18:01
Не правильно работает запрос ww01031977 Microsoft Office Access 12 21.04.2010 10:52