Mein Prog als HTML SERVER
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: Mein Prog als HTML SERVER |
![]() Antworten mit Zitat ![]() |
---|---|---|
nun ja da ich an meinem online game arbeite mit hilfe Bnet Modul, möchte ich gern auch das dieses programm die guten spieler anzeigt also highscore wenn man meine domain (ip) "momentan ist es bei mir Localhost serverport 81"
also gebe ich im browser localhost:81 ein und dann soll ein text halt im browser angezeigt werden, erstmal nix grossartiges, habe mir dazu einfach dieses exemple vom modul angesehn und es getestet , es sieht wie folgt aus: Code: [AUSKLAPPEN] SuperStrict
Import Vertex.BNetEx Global Server : TTCPStream, .. Clients : TList, .. Client : TTCPStream Try Server = New TTCPStream If Not Server.Init() Then Throw("Can't create socket") If Not Server.SetLocalPort(81) Then Throw("Can't set local port") If Not Server.Listen() Then Throw("Can't set to listen") Clients = New TList Repeat Client = Server.Accept() If Client Then WriteStdout("New Client:~n" + .. " - IP:" + TNetwork.StringIP(Client.GetLocalIP()) + "~n" + .. " - Port:" + Client.GetLocalPort() + "~n") Clients.AddLast(Client) EndIf For Client = EachIn Clients If Client.GetState() <> 1 Then WriteStdout("Client disconnected:~n" + .. " - IP:" + TNetwork.StringIP(Client.GetLocalIP()) + "~n" + .. " - Port:" + Client.GetLocalPort() + "~n") Client.Close() Clients.Remove(Client) Continue EndIf If Client.RecvAvail() Then While Client.RecvMsg() ; Wend If Client.Size() > 0 Then WriteStdout("Message from client:~n" + .. " - IP:" + TNetwork.StringIP(Client.GetLocalIP()) + "~n" + .. " - Port:" + Client.GetLocalPort() + "~n") Client.ReadLine() While Not Client.Eof() WriteStdout(">"+Client.ReadLine() + "~n") Wend Client.WriteLine("Willkommen") While Client.SendMsg() ; Wend EndIf EndIf Next Forever Catch Exception:Object WriteStdout("Error~n " + Exception.ToString()) End Try If Server Then Server.Close() WriteStdout("~n- ready -~n") End mit anderen worten wenn ich das prog starte und dann im browser mein localhost:81 eingebe soll er Willkommen schreiben ->also willkommen im browser schreiben.<- das geht leider nicht, obwohl im server programm mir ausgegeben wird welchen Browser ich grag nutz ect... wo ist der fehler? bzw warum geht es nicht, wie geht es einfacher oder geht sowas generell? ![]() danke im vorraus |
||
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Äh...
also...: 1. Es gibt keinen HTML-Server. 2. Solltest du dich generell erstmal mit Netzwerkfunktionen und Protokollen allgemein beschäftigen. 3. Wenn du das getan hast, kannst du dir ja mal das HTTP-Protokoll ansehen, dass ich nämlich das, was du hierfür brauchst. Dem Browser einfach irgendetwas zusenden geht nicht. ![]() MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann wunderts mih das es unter windows XP funktioniert und unter Windows Vista & Windows 7 nicht ![]() |
||
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das liegt dann wahrscheinlich eher an dem Browser. (IE?)
Weil der Browser sollte eigentlich nicht einmal das von dir gesendete akzeptieren, so ganz ohne HTTP-Header. :-/ |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
^nein wenn das server prog auf win xp läuft kann es jeder browser sehen das ->Willkommen | ||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nope, ein Browser hällt sich an das HTTP-Protokoll, wenn du keinen HTTP-Header sendest, antwortet der Browser idR mit nem 5xx Fehler, ala: "The Server send a bad response" | ||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
mhh der header sollte eig gehen oder nicht?
Code: [AUSKLAPPEN] EOL:String = Chr(13)+Chr(10)
Client.WriteLine "HTTP/1.1 200 OK"+eol Client.WriteLine "Server: Hallo" +eol Client.WriteLine "Content-Length: "+Len("Willkommen")+eol Client.WriteLine "Content-Type: text/html"+eol Client.WriteLine "Willkommen" *falls das gehen soll, tuts nur nicht |
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nach den Headern und vor dem Inhalt muss eine Komplett leere Zeile kommen, die fehlt aber bei dir. | ||
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
mhh funtzt net, ausgabe des servers
Code: [AUSKLAPPEN] New Client:
- IP:127.0.0.1 - Port:52579 Message from client: - IP:127.0.0.1 - Port:52579 >Host: localhost:81 >User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.4) Gecko/20091016 YFF35 Firefox/3.5.4 >Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 >Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 >Accept-Encoding: gzip,deflate >Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 >Keep-Alive: 300 >Connection: keep-alive und so is mein prog aufgebaut Code: [AUSKLAPPEN] SuperStrict
Import Vertex.BNetEx Global EOL:String = Chr(13) + Chr(10) Global Server : TTCPStream, .. Clients : TList, .. Client : TTCPStream Try Server = New TTCPStream If Not Server.Init() Then Throw("Can't create socket") If Not Server.SetLocalPort(81) Then Throw("Can't set local port") If Not Server.Listen() Then Throw("Can't set to listen") Clients = New TList Repeat Client = Server.Accept() If Client Then WriteStdout("New Client:~n" + .. " - IP:" + TNetwork.StringIP(Client.GetLocalIP()) + "~n" + .. " - Port:" + Client.GetLocalPort() + "~n") Clients.AddLast(Client) EndIf For Client = EachIn Clients If Client.GetState() <> 1 Then WriteStdout("Client disconnected:~n" + .. " - IP:" + TNetwork.StringIP(Client.GetLocalIP()) + "~n" + .. " - Port:" + Client.GetLocalPort() + "~n") Client.Close() Clients.Remove(Client) Continue EndIf If Client.RecvAvail() Then While Client.RecvMsg() ; Wend If Client.Size() > 0 Then WriteStdout("Message from client:~n" + .. " - IP:" + TNetwork.StringIP(Client.GetLocalIP()) + "~n" + .. " - Port:" + Client.GetLocalPort() + "~n") Client.ReadLine() While Not Client.Eof() WriteStdout(">"+Client.ReadLine() + "~n") Wend Client.WriteLine "" + EOL Client.WriteLine "HTTP/1.1 200 OK"+eol Client.WriteLine "Server: Hallo" +eol Client.WriteLine "Content-Length: "+Len("Willkommen")+eol Client.WriteLine "Content-Language: de"+eol Client.WriteLine "Content-Type: text/html"+eol Client.WriteLine "Connection: close" Client.WriteLine ""+eol Client.WriteLine "<html>" +eol Client.WriteLine"<head>" + eol Client.WriteLine"<title>Index von: " + "mir" + "</title>" +eol Client.WriteLine"</head>" + eol Client.WriteLine"<body bgcolor=" + Chr(34) + "#808080" + Chr(34) + ">" + eol Client.WriteLine"<center>" + eol Client.WriteLine "Willkommen"+eol client.WriteLine"</center>" +eol Client.WriteLine"</body>" + eol Client.WriteLine"</html>" + eol While Client.SendMsg() ; Wend EndIf EndIf Next Forever Catch Exception:Object WriteStdout("Error~n " + Exception.ToString()) End Try If Server Then Server.Close() WriteStdout("~n- ready -~n") End |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm...
Schreibt "WriteLine" nicht schon Chr(13)+Chr(10) nach dem geschriebenen String? In BlitzBasic ist es so und bei BlitzMax scheint es zumindest in einigen Forum-Threads auch so zu sein. Es könnte gut möglich sein, das die freie Zeile zwischen den Headerdaten als Ende des Headers interpretiert wird. Zum Debuggen solltest du mal noch ein "Client"-Programm schreiben, dass ausgibt, was der Server alles sendet. Außerdem sendest du eine falsche Inhaltslänge. Du hast die ganzen HTML-Tags bei der Berechnung der Größe vergessen. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würd einfach nen Apache Server aufsetzen und die dateien
in htdocs ändern oder eine html datei vom Programm ausgeben lassen und diese via FTP oder was auch immer auf irgend nen Server laden. Micha |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder dem Programm ein interface verpassen, und dieses von PHP aus ansprechen. | ||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Das folgende müsste eigentlich schon reichen: Code: [AUSKLAPPEN] Client.WriteLine "HTTP/1.1 200 OK"
Client.WriteLine "Content-Type: text/html" Client.WriteLine "Connection: close" Client.WriteLine "" Client.WriteLine "Willkommen" Das "+eol" ist - wie bereits gesagt - nicht nötig, da WriteLine schon einen Zeilenumbruch schreibt. Und am Anfang darf keine Leerzeile sein, nur zwischen HTTP-Header und dem eigentlichen Inhalt. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group