Hello world/Web server: Difference between revisions

Content added Content deleted
m (typo)
(Add BaCon entry)
Line 102:
close(HttpService)
}</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}}==