September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
|
|
@ -0,0 +1,42 @@
|
|||
program HelloWorldServer;
|
||||
{$mode objfpc}{$H+}
|
||||
uses
|
||||
Classes, fphttpserver;
|
||||
|
||||
Type
|
||||
TTestHTTPServer = Class(TFPHTTPServer)
|
||||
public
|
||||
procedure HandleRequest(Var ARequest: TFPHTTPConnectionRequest;
|
||||
Var AResponse : TFPHTTPConnectionResponse); override;
|
||||
end;
|
||||
|
||||
Var
|
||||
Serv : TTestHTTPServer;
|
||||
|
||||
procedure TTestHTTPServer.HandleRequest(var ARequest: TFPHTTPConnectionRequest;
|
||||
var AResponse: TFPHTTPConnectionResponse);
|
||||
Var
|
||||
F : TStringStream;
|
||||
begin
|
||||
F:=TStringStream.Create('Hello,World!');
|
||||
try
|
||||
AResponse.ContentLength:=F.Size;
|
||||
AResponse.ContentStream:=F;
|
||||
AResponse.SendContent;
|
||||
AResponse.ContentStream:=Nil;
|
||||
finally
|
||||
F.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
Serv:=TTestHTTPServer.Create(Nil);
|
||||
try
|
||||
Serv.Threaded:=False;
|
||||
Serv.Port:=8080;
|
||||
Serv.AcceptIdleTimeout:=1000;
|
||||
Serv.Active:=True;
|
||||
finally
|
||||
Serv.Free;
|
||||
end;
|
||||
end.
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
listener =
|
||||
SocketListen["127.0.0.1:8080",
|
||||
Function[{assoc},
|
||||
With[{client = assoc["SourceSocket"]},
|
||||
WriteString[client,
|
||||
"HTTP/1.0 200 OK\nContent-Length: 16\n\nGoodbye, World!\n"];
|
||||
Close[client]]]]
|
||||
SystemOpen["http://127.0.0.1:8080"]
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
DeleteObject[listener];
|
||||
Close[listener["Socket"]]
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
import threading
|
||||
|
||||
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
||||
|
||||
|
||||
class HelloHTTPRequestHandler(BaseHTTPRequestHandler):
|
||||
|
||||
message = 'Hello World! 今日は'
|
||||
|
||||
def do_GET(self):
|
||||
self.send_response(200)
|
||||
self.send_header('Content-type', 'text/html; charset=UTF-8')
|
||||
self.end_headers()
|
||||
self.wfile.write(self.message.encode('utf-8'))
|
||||
self.close_connection = True
|
||||
|
||||
|
||||
def serve(addr, port):
|
||||
with ThreadingHTTPServer((addr, port), HelloHTTPRequestHandler) as server:
|
||||
server.serve_forever(poll_interval=None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
addr, port = ('localhost', 80)
|
||||
|
||||
threading.Thread(target=serve, args=(addr, port), daemon=True).start()
|
||||
|
||||
try:
|
||||
while True:
|
||||
# handle Ctrl+C
|
||||
input()
|
||||
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
Loading…
Add table
Add a link
Reference in a new issue