Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
2-1203317888
ryden
2008-02-18 09:58
2008.03.16
Как поместь форму в dll


2-1203075870
Dan
2008-02-15 14:44
2008.03.16
Перетаскивание компонентов


15-1202297531
Бакук
2008-02-06 14:32
2008.03.16
Помогите с переводом JavaScript в Delphi


2-1203021069
Rentner
2008-02-14 23:31
2008.03.16
Перемещение формы, у которой свойство BorderStyle:=bsNone


2-1203378891
Artem
2008-02-19 02:54
2008.03.16
Вопрос по colordialog1.Color





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский