Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.16;
Скачать: CL | DM;

Вниз

winsock   Найти похожие ветки 

 
Res   (2008-02-15 22:35) [0]

Подскажите пожалуйста, что не так в моей куске кода. Понял 1, проблема в recv

var
s:TSocket;
Data:TWSAData;
Addr:TSockAddr;
str,st:string;
begin
WSAStartup($101, data); // èíèöèàëèçèðóå&# 236; wsa
s:=socket(AF_INET, SOCK_STREAM,IPPROTO_TCP);
Addr.sin_family:=AF_Inet;
Addr.sin_port:=htons(80);
Addr.sin_addr.S_addr:=inet_addr("213.180.204.8");
Connect(S,Addr,SizeOf(TSockAddr));
str:="GET / HTTP/1.1"+#13#10+"nHost: "+"ya/ru"+#13#10+"Connection: Close"+#13#10#13#10;
send(s, str, length(str),0);
Recv(s, st, 1023, 0);
closesocket( s ); // çàêðûâàåì ñîêåò
WSACleanup(); // äåèíèöèàëèçèð&# 243;åì wsa

end;


 
Res   (2008-02-15 22:38) [1]

ya/ru, это ya.ru :) Просто был другой сайт


 
Джо ©   (2008-02-15 23:17) [2]

str:="GET / HTTP/1.1"+#13#10+"nHost: "+"ya.ru"+#13#10+"Connection: Close"+#13#10#13#10;
 send(s, str[1], length(str),0);
 SetLength (st,1023);
 Recv(s, st[1], Length(st), 0);


 
Джо ©   (2008-02-15 23:22) [3]

Ну и прием лучше порциями, то есть, примерно так:
var
 st:string;
 Buff: array [0..1023] of Char;
 Recived: Integer;
...
 St := "";
 Recived := -1;
 while Recived <> 0 do
 begin
   Recived := Recv(s, Buff, Length(Buff), 0);
   St := St + Copy (Buff,0,Recived);
 end;
 


 
easy ©   (2008-02-15 23:35) [4]

хароший пример работы с сокетами лежит тут -
http://elite-mythology.sourceforge.net/TAKChat/


 
Res   (2008-02-16 12:23) [5]

Непашет, незнаю почему, St всегда равно "" :(


 
Джо ©   (2008-02-16 18:35) [6]

> [5] Res   (16.02.08 12:23)
> Непашет, незнаю почему, St всегда равно "" :(

Вышеприведенный мною код работает.
И это, у тебя там ошибка в команде GET, «nHost» вместо «Host». Впрочем, это не важно, St все-равно не будет пустым.



Страницы: 1 вся ветка

Текущий архив: 2008.03.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
2-1203008491
Квэнди
2008-02-14 20:01
2008.03.16
3DES в Delphi


2-1203055696
кекс
2008-02-15 09:08
2008.03.16
"Дерево" для данных


6-1181510267
NeyroSpace
2007-06-11 01:17
2008.03.16
Как в Indy 10 обработать ошибки подключения?


2-1203185365
guav
2008-02-16 21:09
2008.03.16
Хитрые структуры данных.


2-1203406857
dmitry_12_08_73
2008-02-19 10:40
2008.03.16
Создание рамки с бегущими муравьями