TCP ?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

judos

Betreff: TCP ?

BeitragFr, Sep 29, 2006 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,

ich habe mal probiert ein kleineres programm zu schreiben, das auf einen eigen geschriebenen PHP server zugreifft und mit diesem komuniziert. komme aber nicht nach mit den TCP befehlen. Wie funktionieren diese? Habe jede Hilfe schon vergeblich durchgelesen. bin nur bis zu folgendem gekommen:

Code: [AUSKLAPPEN]

tcp=OpenTCPStream("judos.ju.funpic.de",80)
WriteLine tcp,"GET http://judos.ju.funpic.de/connect.php?name=judos"
WriteLine tcp,Chr$(10)


Na ok, kann immerhin ein name versenden. Aber wie macht man das wenn man mehr Daten an den Server versenden will?
Zudem geht dieses Beispiel nur ein einziges mal, danach muss ich programm neu starten damit ich wieder etwas versenden kann. Was mache ich falsch ?

mfg judos

Blitzcoder

Newsposter

BeitragFr, Sep 29, 2006 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
per GET oder per POST. Such mal hier im Forum danach.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

judos

BeitragFr, Sep 29, 2006 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
jup der andere Beitrag habe ich schon gesehen...

aber wie sendet man dim felder per GET befehl ? Rolling Eyes

und wesshalb muss ich der tcp stream immer wieder neu öffnen ??

FOODy

BeitragFr, Sep 29, 2006 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil die Verbindung zum HTTP Server serverseitig nachdem alles ausgeführt (etc) wurde abgebrochen wird.

GET Befehl? Naja. Ich würd es eher als HTTP Header bezeichnen ;D

Zitat:
GET /profile.php?mode=viewprofile&u=185 HTTP/1.0
Host: www.blitzforum.de


Das wäre jetzt ein GET Request zu https://www.blitzforum.de/foru...&u=185

(@Kryan: hat nix mit dir zu tun, hab dein nick aus rein zufall angeklick ;D)


EDIT:
Ich versuch jetzt mal ein Beispiel zu machen. (Hab aber leider kein B3D deshalb kann ich es nicht austesten)

Erst erstellt man ein TCP Stream.
Code: [AUSKLAPPEN]
stream = opentcpstream("www.blitzforum.de",80)


Dann Schreibt man den Request:
Code: [AUSKLAPPEN]
Header$ = "GET /profile.php?mode=viewprofile&u=185 HTTP/1.0"+chr$(10)
Header = Header+"Host: www.blitzforum.de"+chr$(10)
WriteLine(stream,Header)


Nun liest man die Antwort vom Server.
Code: [AUSKLAPPEN]
repeat
    print ReadLine(stream)
until not stream



Also das soll jetzt mehr als Beispiel gelten.
Mich würds nicht wundern wenn mein Code nicht funzt Very Happy (habs nicht getestet)
Es soll einfach eine grobe code"vorlage" sein...




Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

Kryan

BeitragFr, Sep 29, 2006 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
repeat
    print ReadLine(stream)
until not stream


Warum sollte sich stream mit der Zeit verändern?? Wenn, dann doch bitte ReadAvail(stream) Wink

Also:

Code: [AUSKLAPPEN]
Repeat
 Print ReadLine$(stream)
Until ReadAvail(stream)=0
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Blitzcoder

Newsposter

BeitragFr, Sep 29, 2006 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Per GET ist die Datenmenge sehr begrenzt(ich glaube 255 Zeichen mit URL). Am besten nimmst du also POST.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

judos

BeitragFr, Sep 29, 2006 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ok frage 1 ist geklärt, falls ich das richtig interpretiert habe.

-man muss nach jeder anfrage den stream wieder schliessen und danach neu öffnen.


und dann wär da noch das andere problem:

wie kann man viele daten vom Blitzbasic programm zum server schicken?
das mit dem GET befehl ist mir schon klar, aber damit kann man nur einige wenige Variabeln schicken und keine grössere Menge, wie z.B. die Werte eines Dim-feldes oder so...

mfg judos

Kryan

BeitragFr, Sep 29, 2006 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
nur 7 threads unter diesem hier findest du die geheime antwort Smile
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Blitzcoder

Newsposter

BeitragFr, Sep 29, 2006 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab dir doch gesagt, benutze die Suche. Sowas gab es gerade hier https://www.blitzforum.de/foru...t=get+post

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

judos

BeitragFr, Sep 29, 2006 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
WriteLine tcp, "POST "+script$+" HTTP/1.1"
WriteLine tcp, "User-Agent: BlitzBasic"
WriteLine tcp, "Host: "+host$
WriteLine tcp, "Accept: */*"
WriteLine tcp, "Content-length: "+length
WriteLine tcp, "Content-Type:  multipart/form-Data; boundary=----------"
WriteLine tcp, ""
WriteLine tcp,  "------------"
WriteLine tcp, "Content-Disposition: form-data; name="+Chr$(34)+POSTvariable$+Chr$(34)


ok, script$ ist hier die datei aufm server
host$ ist die server adresse.
was ist dann length ??
und wie formt man das um, damit man mehrere variabeln senden kann?

Kryan

BeitragFr, Sep 29, 2006 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
also Content-Length ist nicht zwingend notwendig!

WriteLine tcp, "Content-Disposition: form-data; name="+Chr$(34)+POSTvariable$+Chr$(34)

Bei PostVariable$ kannst du irgendwelche Zeichen verwenden, die die einzelnen Variablen trennen, zB:

POSTVariable$=var1$+"#"+var2$+"#"+var3$+"#"+var4$

Mit PHP kann man das dann irgendwie fragen, müssen die anderen dir jedoch beantworten Smile
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group