HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Траблы с Winsock
  #1  
Старый 12.05.2010, 23:16
denjf
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
С нами: 9207335

Репутация: 21
По умолчанию Траблы с Winsock

Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
Form1: TForm1;
info: WSADATA;
sin: sockaddr_in;
myip: PHostEnt;
sHwnd: integer;
sBuff1:string;
sBuff, rBuff: array [0..5000] of char;
begin
WSAStartup(makeword(1,1),info);
sHwnd:=Socket(AF_INET, SOCK_STREAM, 0);
sin.sin_family:=AF_INET;
sin.sin_port:=htons(80);
sin.sin_addr.S_addr:=inet_addr('213.33.198.214');
connect(sHwnd, sin, sizeof(sin));
sbuff1:='GET / HTTP/1.1'+ #13#10 +
'Accept:application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/x-esobi, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'+ #13#10 +
'Accept-Language:ru-RU'+ #13#10 +
'User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.4; MRA 5.6 (build 03278); SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; eSobiSubscriber 2.0.4.16)'+ #13#10 +
'Accept-Encoding:gzip, deflate'+ #13#10 +
'Hostdnoklassniki.ru'+ #13#10 +
'Connection:Keep-Alive'+ #13#10+#13#10;


CopyMemory(@sBuff,pchar(sBuff1),length(sBuff1));

send(sHwnd, sBuff, Length(sBuff), 0);
recv(sHwnd, rBuff, Length(rBuff), 0);
Memo1.Lines.Add(rBuff);
end;
Что не так сделал??
Код взял тут на форуме.
В мемо добавляется пустая строка в результате.
Использую Delphi 10
 
Ответить с цитированием

  #2  
Старый 12.05.2010, 23:19
crystalbit
Участник форума
Регистрация: 06.06.2008
Сообщений: 171
С нами: 9436571

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

проверяй для начала то, что возвращают функции

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

  #3  
Старый 12.05.2010, 23:22
denjf
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
С нами: 9207335

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

Цитата:
Сообщение от crystalbit  
проверяй для начала то, что возвращают функции

посмотри тут
Я так делал, мурыжил долго.

Если делаю запрос к parsers.info в консоле возвращает знаки вопроса в 2 строчке. К другим сайтам вообще не че не возвращает и ошибку не где не выдает.
 
Ответить с цитированием

  #4  
Старый 12.05.2010, 23:25
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
С нами: 8947056

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

Цитата:
Сообщение от denjf  
Если делаю запрос к parsers.info в консоле возвращает знаки вопроса в 2 строчке
Попробуй убрать заголовки которые начинаются на "Accept"
 
Ответить с цитированием

  #5  
Старый 12.05.2010, 23:28
denjf
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
С нами: 9207335

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

Цитата:
Сообщение от wolmer  
Попробуй убрать заголовки которые начинаются на "Accept"
Эфект такой же. Может дело в Delphi 2010??
 
Ответить с цитированием

  #6  
Старый 13.05.2010, 10:23
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
С нами: 9227388

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

Цитата:
sbuff1:='GET / HTTP/1.1'+ #13#10 +
'User-Agent:Mozilla/4.0'+ #13#10 +
'Hostdnoklassniki.ru'+ #13#10 +
'Connection:Keep-Alive'+ #13#10+#13#10;
так:
Цитата:
sbuff1:='GET / HTTP/1.1'+ #13#10 +
'User-Agent: Mozilla/4.0'+ #13#10 +
'Host: odnoklassniki.ru'+ #13#10 +
'Connection: Keep-Alive'+ #13#10+#13#10;
 
Ответить с цитированием

  #7  
Старый 13.05.2010, 10:41
denjf
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
С нами: 9207335

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

Цитата:
Сообщение от M_script_  
так:
Не работает!
 
Ответить с цитированием

  #8  
Старый 13.05.2010, 10:44
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

снифер в руки и вперед за родину.

CopyMemory(@sBuff,pchar(sBuff1),length(sBuff1));
send(sHwnd, sBuff, Length(sBuff), 0);
recv(sHwnd, rBuff, Length(rBuff), 0);

это код полный пздц.
Отправляй данный сразу из строки, без промежуточного буфера.
А вот когда считываешь, то указывай не Length(rBuff) а размер буфера в байтах. или юзай sizeof
 
Ответить с цитированием

  #9  
Старый 13.05.2010, 11:15
denjf
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
С нами: 9207335

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

Цитата:
Сообщение от slesh  
снифер в руки и вперед за родину.

CopyMemory(@sBuff,pchar(sBuff1),length(sBuff1));
send(sHwnd, sBuff, Length(sBuff), 0);
recv(sHwnd, rBuff, Length(rBuff), 0);

это код полный пздц.
Отправляй данный сразу из строки, без промежуточного буфера.
А вот когда считываешь, то указывай не Length(rBuff) а размер буфера в байтах. или юзай sizeof
send(sHwnd, sBuff1[1], Length(sBuff), 0);


recv(sHwnd, rBuff, sizeof(rBuff), 0);
Memo1.Lines.Add(rBuff);

PS Только начал изучать винсок.

Вот что вернулось в ответ 訄

В Delphi 7 все работает!!! А в 2010 нихера (((

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

  #10  
Старый 13.05.2010, 11:36
greki_hoy
Познающий
Регистрация: 04.03.2010
Сообщений: 32
С нами: 8520171

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

Цитата:
Сообщение от denjf  
send(sHwnd, sBuff1[1], Length(sBuff), 0);


recv(sHwnd, rBuff, sizeof(rBuff), 0);
Memo1.Lines.Add(rBuff);

PS Только начал изучать винсок.

Вот что вернулось в ответ 訄
странно а должно было быть нарушение доступа
получится примерно так
movsx eax, byte ptr[buffer + 1]
push eax
//... передается не адрес а символ к тому же расширенный в итоге там нечто такого 0x000000df
а запись по такому адресу отловится скорее всего как запись в память отведенную для перехвата нулевых уакзателей а если символ был 0xff получится такой адрес 0xffffffff
напишите так
send(sHwnd, sBuff1, strlen(sBuff), 0);
sBuff1[1] это разыменование а нужен адрес и индексация с нуля не забываем
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi Winsock 1.1 GET Sams С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 9 05.03.2010 00:45
Траблы с Internet Connection :\ .::f-duck::. Болталка 2 16.08.2009 18:25
Чуть не понятно о winsock на делфи diznt С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 8 03.04.2009 21:12



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


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




ANTICHAT ™ © 2001- Antichat Kft.