Anfängerfragen zum Programmieren mit PureBasic.
Delle
Beiträge: 1130 Registriert: 10.05.2005 22:48
Beitrag
von Delle » 25.08.2005 19:14
Das liefert bei mir nur Müll:
Code: Alles auswählen
InitNetwork()
ConnectionID = OpenNetworkConnection("www.google.de", 80)
buf$="GET / HTTP/1.0"+Chr(10)+Chr(10)+"Host: www.google.de"+Chr(10)+Chr(10)
Buffer = AllocateMemory(100)
SendNetworkData(ConnectionID, buf$, Len(buf$))
CreateFile(0,"c:\windows\desktop\anal.html")
While ReceiveNetworkData(ConnectionID, Buffer, 100)
WriteString(PeekS(Buffer))
Wend
CloseFile(0)
CloseNetworkConnection(ConnectionID)
RunProgram("c:\windows\desktop\anal.html")
Ebenso wenn man "GET" durch "HEAD" ersetzt ist der Header am Schluss immer verstümmelt:
[quote]HTTP/1.0 302 Found
Location:
http://www.google.de/cxfer?c=PREF%3D:TM ... JfYMv76Avw
Deeem2031
Beiträge: 1232 Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:
Beitrag
von Deeem2031 » 25.08.2005 19:24
Code: Alles auswählen
While ReceiveNetworkData(ConnectionID, Buffer, 100)
WriteString(PeekS(Buffer))
Wend
zu
Code: Alles auswählen
len = ReceiveNetworkData(ConnectionID, Buffer, 100)
While len
WriteString(PeekS(Buffer,len))
len =ReceiveNetworkData(ConnectionID, Buffer, 100)
Wend
ändern. Könnt zwar sein das noch was falsch ist (habs nich getestet), aber das solltest du mindestens ändern.
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Delle
Beiträge: 1130 Registriert: 10.05.2005 22:48
Beitrag
von Delle » 25.08.2005 19:32
Weißt was Du meinst.... geht sowas nicht:
while(!feof($sock)){$inhalt.=fgets($sock,128);}
???
Green Snake
Beiträge: 1394 Registriert: 22.02.2005 19:08
Beitrag
von Green Snake » 25.08.2005 19:38
wenn ich den code falsch verstanden habe, dann bitte nicht hauen
wies aussieht willst du eine zuweisung (zb. a=b) machen
in pb kann man (leider) KEINE zuweisungen in while, if etc machen.
-.-"
MVXA
Beiträge: 3823 Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:
Beitrag
von MVXA » 25.08.2005 19:43
@Snake
Wo siehst du hier eine Zuweisung in der While schleife?
while(!feof($sock))
{
$inhalt .= fgets($sock,128);
}
Zum Problem. Ich würde empfehlen einen Speicherberreich mit 4069 Bytes
zu reservieren. Vielleicht kann dies das Problem beheben.
Green Snake
Beiträge: 1394 Registriert: 22.02.2005 19:08
Beitrag
von Green Snake » 25.08.2005 19:44
sorry, bin müde, wütend, und habs deshalb überlesen.
nichts für ungut
-.-"
Deeem2031
Beiträge: 1232 Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:
Beitrag
von Deeem2031 » 25.08.2005 19:46
Delle hat geschrieben: Weißt was Du meinst.... geht sowas nicht:
while(!feof($sock)){$inhalt.=fgets($sock,128);}
???
Nicht direkt, weil du den Buffer nicht löschst (in PHp wird ja immer ein neuer erstellt), desswegen musst du entweder die Länge beachten oder vor jedem aufruf von Receive... rtlZeroMemory(Buffer,len) aufrufen.
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Delle
Beiträge: 1130 Registriert: 10.05.2005 22:48
Beitrag
von Delle » 25.08.2005 19:47
Okay, mit 4096 ginge es sicherlich besser ohne Überschneidungen...
Trotzdem ist es komisch, daß mit PHP mit GET
www.google.de
schön eingelesen werden kann und mit PB kommt ein 302...
Deeem2031
Beiträge: 1232 Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:
Beitrag
von Deeem2031 » 25.08.2005 19:54
Delle hat geschrieben: mit PB kommt ein 302...
Ich schätze PHP folgt dem selbstständig.
Du musst dann natürlich auch die Chr_13;Chr_10 Endungen von den Nachrichten entfernen (was PHP automatisch macht), sonst wirst du immer die 2 Zeichen drin haben.
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Delle
Beiträge: 1130 Registriert: 10.05.2005 22:48
Beitrag
von Delle » 25.08.2005 20:01
PHP-HEAD-REQUEST
www.google.de :
Code: Alles auswählen
HTTP/1.0 200 OK
Cache-Control: private
Content-Type: text/html
Set-Cookie: PREF=ID=b154653483287d64:TM=1124992386:LM=1124992386:S=EwhRq1Rq24NZXa8-; expires=Sun, 17-Jan-2038 19:14:07 GMT; pat
h=/; domain=.google.de
Server: GWS/2.1
Content-Length: 0
Date: Thu, 25 Aug 2005 17:53:06 GMT
Connection: Keep-Alive
Also wenn wirklich ein 302 da wäre, dann würde kein 200 kommen.
Ich vermute es liegt irgendwie an "GET / HTTP...", also an dem
Schrägstrich und das nichts mehr dahinter steht wie index.php oder so