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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2015, 18:10   #1
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
Злость 127.0.0.1

Всем привет!
Есть простенький HTTP сервер на основе TidHTTPServer.
Браузер коннектится нормально и сервер отвечает
Код:
(Request-Line):GET / HTTP/1.1
Host:127.0.0.1
User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding:gzip, deflate
Cookie:vc=1
Connection:keep-alive
А вот если коннектится через сокет, то ответ приходит от гугла
Код:
(Request-Line):GET / HTTP/1.1
Host:127.0.0.1
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Connection:close
Что не так я делаю?

Заземляться горшком с гвоздём не предлагать)))
ДралсяСошибками вне форума Ответить с цитированием
Старый 24.02.2015, 18:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
коннектится через сокет
Как эту фразу следует понимать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.02.2015, 18:53   #3
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

send'ом)))
ДралсяСошибками вне форума Ответить с цитированием
Старый 24.02.2015, 20:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Извини, не понимаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.02.2015, 20:22   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx видимо.

Но автор лучше бы код показал, а не только текст запроса.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.02.2015, 20:48   #6
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  WSAData: TWSAData;
  WSocket: TSocket;
  SockAddr: TSockAddr;
  Buffer: Array [0..4095] of Byte;
  Str: String;
begin
  Str := 'GET / HTTP/1.1' + #13#10 +
         'Host: 127.0.0.1' + #13#10 +
         'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)' + #13#10 +
         'Connection: close' + #13#10 + #13#10;
  WSAStartup($202, WSAData);
  WSocket := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  FillChar(SockAddr, SizeOf(TSockAddr), 0);
  SockAddr.sin_family := AF_INET;
  SockAddr.sin_port := htons(80);
  SockAddr.sin_addr.s_addr := inet_addr('127.0.0.1');
  Connect(WSocket, SockAddr, SizeOf(TSockAddr));
  Move(Str[1], Buffer, Length(Str) * SizeOf(Str[1]));
  Send(WSocket, Buffer, SizeOf(Buffer), 0);
  CloseSocket(WSocket);
  WSACleanup;
end;
Теперь вообще сервер отказывается отвечать(((

Recv(WSocket, Buffer, SizeOf(Buffer), 0);
после сенда забыл(((

Последний раз редактировалось Stilet; 24.02.2015 в 21:03.
ДралсяСошибками вне форума Ответить с цитированием
Старый 24.02.2015, 21:02   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Connect(WSocket, SockAddr, SizeOf(TSockAddr));
А где обработка ошибок?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.02.2015, 21:17   #8
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Да это я набросал аналог того, что в проге, там все обработки ошибок есть, не стал оттуда выдирать, так как там много лишнего. Ошибок никаких, send отправляет запрос, сервер почему-то перенаправляет в гугорвский поиск с запросом 127.0.0.1

хз, может у меня какие косяки в винде(((
ДралсяСошибками вне форума Ответить с цитированием
Старый 24.02.2015, 22:17   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сервер почему-то перенаправляет в гугорвский поиск
Всмысле твой idHTTPServer?
Не может такого быть. Поставь на него бряк или напиши ведение логов, и посмотри что ему реально приходит. Как вариант - отключить инет на время проб.
Это ерунда какая-то, я тоже этот компонент использовал и никакого перенаправления за ним замечено никогда не було.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.02.2015, 22:35   #10
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Ставил бряк на IdHTTPServerCommandGet, браузер отрабатывает нормально, IdHTTP тоже, а вот мой код не отрабатывает, интернет не отключал, наверно всё-таки винда уже на исдохе, слишком много в последнее время каких-то нелепых ошибок, пожалуй переустановлю её)))
ДралсяСошибками вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение в NotifyIcon.Text больше 127 символов Tolias WPF, UWP, WinRT, XAML 0 20.02.2012 16:19