TcpServer
Übersicht

PhloxBetreff: TcpServer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
also ich versuche gerade aus Spaß, ein kleinen Apache Klon zu schreiben... Folgende Frage:Warum funktioniert dieser Code nicht? Code: [AUSKLAPPEN] server=CreateTCPServer(80)
If server=0 Then RuntimeError "Server konnte nicht erstellt werden!" timer=CreateTimer(60) While Not KeyDown(1) WaitTimer(timer) dats=AcceptTCPStream(server) If dats>0 Then Print ReadString$(server) EndIf Wend CloseTCPServer server End Zuerst funktioniert er, das Fenster bleibt leer. Dann, wenn ich in meinen Browser 127.0.0.1 eingebe, gibt es einen MAV. Ich habe B3D v1.98, weil ich gehört habe, dass es mit der neuen Version Probleme gibt. Tia Phlox |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du kannst nicht an port 80 binden und dann erwarten dass dein client nicht abkratzt wenn du mit browser den port 80 anspringst womit der client aus der leitung denn du überprüfst ob dats > 0 was nichts bringt denn selbst wenn der stream stirbt ändert sich eine variable die du vorher zugewiesen hast nicht durch magie
Lies bitte die beschreibungen der anderen tcp stream funktionen damit du die notwendigen überprüfungen etc ebenfalls machst. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Phlox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Fehler gefunden, ich habe jetzt meinen Code geändert:
Code: [AUSKLAPPEN] Graphics 1024,768,32,2
SetBuffer BackBuffer() server=CreateTCPServer(80) If server=0 Then RuntimeError "Server konnte nicht erstellt werden!" timer=CreateTimer(60) While Not KeyDown(1) WaitTimer(timer) dats=AcceptTCPStream(server) If dats>0 Then lst$=ReadString$(dats) Print lst$ If lst$="" Or Left(lst$,1)=" " Then WriteString server,"<html><head><title>HI</title></head><body>HI!</body></html>" EndIf EndIf Flip Wend CloseTCPServer server End Gibt (seltsamerweise) das aus, wenn man es in eine Datei schreibt: Zitat: / HTTP/1.1
Accept: */* Accept-Language: de UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Media Center PC 4.0; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; FDM) Host: 127.0.0.1 Connection: Keep-Alive -gaaaanz viele Leerzeichen- Warum erkennt Blitz das jetzt nicht und schickt die Daten? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. ist es auch jetzt noch falsch
2. Weil du nichts schickst. Du schreibst irgendwas in den Stream, das ist schön. Interessiert den Browser aber nen feuchten Kericht wenn du dich nicht ans HTTP Protokol hältst (entweder 1.0 oder 1.1). Einfach was reinschreiben is net, das kannst du nur machen wenn du eigene programme schreibst die genau diese daten erwarten. jedes normale programm folgt einem Protokol / Standard den du zu befolgen hast wenn du mit ihm Daten austauschen willst, egal auf welchem Weg. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Phlox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und jetzt?
Code: [AUSKLAPPEN] Graphics 1024,768,32,2
SetBuffer BackBuffer() file=WriteFile("test.txt") main=OpenFile("test.html") server=CreateTCPServer(80) If server=0 Then RuntimeError "Server konnte nicht erstellt werden!" timer=CreateTimer(60) While Not KeyDown(1) WaitTimer(timer) dats=AcceptTCPStream(server) If dats>0 Then lst$=ReadString$(dats) WriteLine file,lst$ Print lst$ Flip If lst$="" Or Left(lst$,1)=" " Then WriteString server,"HTTP/1.1 200 OK" WriteString server,"Server: Testserver/0.0.3 (Windows)" WriteString server,"Content-Length: "+FileSize("test.html") WriteString server,"Content-Language: de" WriteString server,"Content-Type: text/html; charset=utf-8 WriteString server,"" While Not Eof(main) WriteString server,ReadLine(main) Wend CloseFile main main=0 main=OpenFile("test.html") EndIf EndIf Flip Wend CloseFile file CloseTCPServer server End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group