Zu früh gefreut
leider funst das mit dem @ doch nciht richtig, da dann nichts als sender übertragen wird.
meine deklarationen:
Delphi-Quellcode:
interface
uses
Windows,
{Messages,} SysUtils, Classes,
WSocket;
type
TMSWSocket =
class(TWSocket)
private
rcvtext : Ansistring;
end;
function GetURL(
URL:Ansistring):ansistring;
procedure WSDataAvailable(Sender: TObject; Error: Word);
implementation
procedure WSDataAvailable(Sender: TObject; Error: Word);
var a:AnsiString;
ws1:TMSWSocket;
begin
ws1:=TMSWSocket(Pointer(sender));
a:=ws1.ReceiveStr;
if a<>'
'
then ws1.rcvtext:=ws1.rcvtext+a;
end;
function GetURL(
URL:Ansistring):ansistring;
var WS:TMSWSocket;
a:integer;
ServerAddr:
string;
begin
if lowercase(copy(
url,1,7))='
http://'
then delete(
url,1,7);
if pos('
/',
url)=0
then exit;
serveraddr:=copy(
URL,1,pos('
/',
URL)-1);
delete(
url,1,pos('
/',
url)-1);
ws:=TMSWSocket.Create(
nil);
ws.port:='
80';
ws.Addr:=serveraddr;
@ws.OnDataAvailable:=@WSDataAvailable;
ws.Connect;
a:=gettickcount;
while (a+2000>gettickcount)
and (ws.State<>wsconnected)
do begin
ws.ProcessMessages;
sleep(1);
end;
ws.ProcessMessages;
if ws.State=wsconnected
then begin
a:=gettickcount;
while (a+2000>gettickcount)
and (ws.State=wsconnected)
do begin
ws.ProcessMessages;
sleep(1);
end;
result:=ws.rcvtext;
end;
ws.free;
end;
end.
Das ganze soll später multithreat werden!
Hoffe es kann mir einer ne Hilfe geben.
[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]