' Define HTTP constants CONST New$ = CHR$(13) & NL$ CONST Sep$ = CHR$(13) & NL$ & CHR$(13) & NL$ CONST Msg$ = "BaCon web greeting

Goodbye, World!

" ' 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