Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

winsock


Res ©   (2008-02-15 22:35:00) 

Подскажите пожалуйста, что не так в моей куске кода. Понял 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;


Джо   (2008-02-16 18:35:00) [1]

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

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


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

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


easy   (2008-02-15 23:35:00) [3]

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


Джо   (2008-02-15 23:22:00) [4]

Ну и прием лучше порциями, то есть, примерно так:
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;
 


Джо   (2008-02-15 23:17:00) [5]

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);


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо