Форум: "Сети";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
ВнизРабота с сокетами в Indy, помогите Найти похожие ветки
← →
Vilux (2003-12-25 05:02) [0]Подскажите, пожалуйста, как в INdy работать с сокетами. С простыми сокетами я делаю так... отсылаю запрос серверу, потом функцией recv принимаю ответ сервера... но как подобное сделать на Indy? Я не нашел примеров... интересует это в связи с тем, что нужно, чтобы был контроль таймаутов, а сокеты часто зависают...
procedure sender(str:string);
var
I1: integer;
begin
for I1:=1 to Length(str) do
if send(sock2, str[I1] , 1, 0) = SOCKET_ERROR then
begin
writelog("Ошибка отправки через сокет",pnum);
exit;
end;
end;
.........
postinf:="....";
st:="POST http://www.site.ru HTTP/1.0"+#13+#10;
st:=st+"Content-Type: application/x-www-form-urlencoded"+#13+#10;
st:=st+"Host: www.site.ru"+#13+#10;
st:=st+"Content-Length: "+inttostr(length(postinf))+#13+#10;
st:=st+#13+#10;
st:=st+postinf+#13+#10;
sender(st+#13+#10);
← →
S@shka (2003-12-25 09:50) [1]var
TCP : TIdTCPClient;
temp : String;
begin
TCP.Host := "bla-bla.com";
TCP.Port := 1234;
try
TCP.Connect;
TCP.Writeln ("SuperMan login");
temp := TCP.Readln ("",3000); // 3000 - TimeWait
if (temp <> "") then // Что то пришло
begin
MessageBox (Handle,"SuperMan LOgin","Succ",0);
end;
finally
TCP.Disconnect;
end;
end;
← →
BlackSun (2003-12-26 17:34) [2]Делаю как описал S@ashka©...
var
TCP : TIdTCPClient;
temp : String;
begin
tcp:=TIdTCPClient.Create(nil);
TCP.Host := " http://www.server.ru";
TCP.Port := 80;
try
TCP.Connect;
TCP.Writeln ("login");
temp := TCP.Readln ("",3000); // 3000 - TimeWait
if (temp <> "") then //
begin
MessageBox (Handle,"SuperMan LOgin","Succ",0);
end;
finally
TCP.Disconnect;
tcp.Free;
При выполнении TCP.Connect вылетает с ошибкой EIdSocket Error 11004 (WSANO_DATA NO_DATA)
Как быть?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c