Hello world/Web server: Difference between revisions
Content added Content deleted
m (typo) |
(Add BaCon entry) |
||
Line 102: | Line 102: | ||
close(HttpService) |
close(HttpService) |
||
}</lang> |
}</lang> |
||
=={{header|BaCon}}== |
|||
<lang qbasic>' Define HTTP constants |
|||
CONST New$ = CHR$(13) & NL$ |
|||
CONST Sep$ = CHR$(13) & NL$ & CHR$(13) & NL$ |
|||
CONST Msg$ = "<html><head>BaCon web greeting</head><body><h2>Goodbye, World!</h2></body></html>" |
|||
' Get our IP |
|||
Ip$ = "localhost" |
|||
PRINT "Connect from browser '", Ip$, ":8080'." |
|||
' Ignore child signals to avoid zombie processes |
|||
SIGNAL SIG_IGN, SIGCHLD |
|||
' Keep receiving requests |
|||
WHILE TRUE |
|||
' Open listening port |
|||
OPEN Ip$ & ":8080" FOR SERVER AS mynet |
|||
' Incoming connection -> create background process |
|||
spawn = FORK |
|||
' We are in the child |
|||
IF spawn = 0 THEN |
|||
' Get the request |
|||
REPEAT |
|||
RECEIVE dat$ FROM mynet |
|||
PRINT dat$ |
|||
UNTIL RIGHT$(dat$, 4) = Sep$ |
|||
' Reply that we're OK |
|||
SEND "HTTP/1.1 200 Ok" & New$ & "Content-Length: " & STR$(LEN(Msg$)) & Sep$ & Msg$ TO mynet |
|||
' Close connection |
|||
CLOSE SERVER mynet |
|||
' End this process |
|||
END |
|||
' We are in the parent |
|||
ELIF spawn > 0 THEN |
|||
' Close connection in parent |
|||
CLOSE SERVER mynet |
|||
ENDIF |
|||
WEND |
|||
</lang> |
|||
=={{header|BBC BASIC}}== |
=={{header|BBC BASIC}}== |