Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Траблы с Winsock (https://forum.antichat.xyz/showthread.php?t=203632)

denjf 12.05.2010 23:16

Траблы с 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 +
'Host:odnoklassniki.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

crystalbit 12.05.2010 23:19

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

посмотри тут

denjf 12.05.2010 23:22

Цитата:

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

посмотри тут

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

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

wolmer 12.05.2010 23:25

Цитата:

Сообщение от denjf
Если делаю запрос к parsers.info в консоле возвращает знаки вопроса в 2 строчке

Попробуй убрать заголовки которые начинаются на "Accept"

denjf 12.05.2010 23:28

Цитата:

Сообщение от wolmer
Попробуй убрать заголовки которые начинаются на "Accept"

Эфект такой же. Может дело в Delphi 2010??

Chrome~ 12.05.2010 23:46

Удали строчку
Код:

'Accept-Encoding:gzip, deflate'+ #13#10 +
и будет тебе счастье.

denjf 13.05.2010 06:18

Цитата:

Сообщение от Chrome~
Удали строчку
Код:

'Accept-Encoding:gzip, deflate'+ #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;
Эфекта ноль(((

M_script_ 13.05.2010 10:23

Цитата:

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;
так:
Цитата:

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;

denjf 13.05.2010 10:41

Цитата:

Сообщение от M_script_
так:

Не работает!

slesh 13.05.2010 10:44

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

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

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


Время: 11:17