Time for an 2014 update…
This commit is contained in:
parent
372c577f83
commit
09687c4926
2520 changed files with 34227 additions and 7318 deletions
|
|
@ -18,37 +18,37 @@ char response[] = "HTTP/1.1 200 OK\r\n"
|
|||
|
||||
int main()
|
||||
{
|
||||
int one = 1, client_fd;
|
||||
struct sockaddr_in svr_addr, cli_addr;
|
||||
socklen_t sin_len = sizeof(cli_addr);
|
||||
int one = 1, client_fd;
|
||||
struct sockaddr_in svr_addr, cli_addr;
|
||||
socklen_t sin_len = sizeof(cli_addr);
|
||||
|
||||
int sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sock < 0)
|
||||
err(1, "can't open socket");
|
||||
int sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sock < 0)
|
||||
err(1, "can't open socket");
|
||||
|
||||
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(int));
|
||||
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(int));
|
||||
|
||||
int port = 8080;
|
||||
svr_addr.sin_family = AF_INET;
|
||||
svr_addr.sin_addr.s_addr = INADDR_ANY;
|
||||
svr_addr.sin_port = htons(port);
|
||||
int port = 8080;
|
||||
svr_addr.sin_family = AF_INET;
|
||||
svr_addr.sin_addr.s_addr = INADDR_ANY;
|
||||
svr_addr.sin_port = htons(port);
|
||||
|
||||
if (bind(sock, (struct sockaddr *) &svr_addr, sizeof(svr_addr)) == -1) {
|
||||
close(sock);
|
||||
err(1, "Can't bind");
|
||||
}
|
||||
if (bind(sock, (struct sockaddr *) &svr_addr, sizeof(svr_addr)) == -1) {
|
||||
close(sock);
|
||||
err(1, "Can't bind");
|
||||
}
|
||||
|
||||
listen(sock, 5);
|
||||
while (1) {
|
||||
client_fd = accept(sock, (struct sockaddr *) &cli_addr, &sin_len);
|
||||
printf("got connection\n");
|
||||
listen(sock, 5);
|
||||
while (1) {
|
||||
client_fd = accept(sock, (struct sockaddr *) &cli_addr, &sin_len);
|
||||
printf("got connection\n");
|
||||
|
||||
if (client_fd == -1) {
|
||||
perror("Can't accept");
|
||||
continue;
|
||||
}
|
||||
if (client_fd == -1) {
|
||||
perror("Can't accept");
|
||||
continue;
|
||||
}
|
||||
|
||||
write(client_fd, response, sizeof(response) - 1); /*-1:'\0'*/
|
||||
close(client_fd);
|
||||
}
|
||||
write(client_fd, response, sizeof(response) - 1); /*-1:'\0'*/
|
||||
close(client_fd);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,19 +19,19 @@
|
|||
(defun serve (port &optional (log-stream *standard-output*))
|
||||
(let ((connections (list (socket-listen "127.0.0.1" port :reuse-address t))))
|
||||
(unwind-protect
|
||||
(loop (loop for ready in (wait-for-input connections :ready-only t)
|
||||
do (if (typep ready 'stream-server-usocket)
|
||||
(push (socket-accept ready) connections)
|
||||
(let* ((stream (socket-stream ready)))
|
||||
(read-all stream)
|
||||
(format log-stream "Got message...~%")
|
||||
(mapc (lambda (line) (ln line stream))
|
||||
(list "HTTP/1.1 200 OK"
|
||||
"Content-Type: text/plain; charset=UTF-8"
|
||||
""
|
||||
"Hello world!"))
|
||||
(socket-close ready)
|
||||
(setf connections (remove ready connections))))))
|
||||
(loop (loop for ready in (wait-for-input connections :ready-only t)
|
||||
do (if (typep ready 'stream-server-usocket)
|
||||
(push (socket-accept ready) connections)
|
||||
(let* ((stream (socket-stream ready)))
|
||||
(read-all stream)
|
||||
(format log-stream "Got message...~%")
|
||||
(mapc (lambda (line) (ln line stream))
|
||||
(list "HTTP/1.1 200 OK"
|
||||
"Content-Type: text/plain; charset=UTF-8"
|
||||
""
|
||||
"Hello world!"))
|
||||
(socket-close ready)
|
||||
(setf connections (remove ready connections))))))
|
||||
(loop for c in connections do (loop while (socket-close c))))))
|
||||
|
||||
(serve 8080)
|
||||
|
|
|
|||
|
|
@ -3,22 +3,22 @@ import std.socket, std.array;
|
|||
ushort port = 8080;
|
||||
|
||||
void main() {
|
||||
Socket listener = new TcpSocket;
|
||||
listener.bind(new InternetAddress(port));
|
||||
listener.listen(10);
|
||||
Socket listener = new TcpSocket;
|
||||
listener.bind(new InternetAddress(port));
|
||||
listener.listen(10);
|
||||
|
||||
Socket currSock;
|
||||
Socket currSock;
|
||||
|
||||
while(cast(bool)(currSock = listener.accept())) {
|
||||
currSock.sendTo(replace(q"EOF
|
||||
while(cast(bool)(currSock = listener.accept())) {
|
||||
currSock.sendTo(replace(q"EOF
|
||||
HTTP/1.1 200 OK
|
||||
Content-Type: text/html; charset=UTF-8
|
||||
|
||||
<html>
|
||||
<head><title>Hello, world!</title></head>
|
||||
<body>Hello, world!</body>
|
||||
<head><title>Hello, world!</title></head>
|
||||
<body>Hello, world!</body>
|
||||
</html>
|
||||
EOF", "\n", "\r\n"));
|
||||
currSock.close();
|
||||
}
|
||||
currSock.close();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,19 +3,19 @@
|
|||
-export( [do/1, httpd_start/2, httpd_stop/1, task/0] ).
|
||||
|
||||
do( _Data ) ->
|
||||
{proceed, [{response,{200,"Goodbye, World!"}}]}.
|
||||
{proceed, [{response,{200,"Goodbye, World!"}}]}.
|
||||
|
||||
httpd_start( Port, Module ) ->
|
||||
Arguments = [{bind_address, "localhost"}, {port, Port}, {ipfamily, inet},
|
||||
{modules, [Module]},
|
||||
{server_name,erlang:atom_to_list(Module)}, {server_root,"."}, {document_root,"."}],
|
||||
{ok, Pid} = inets:start( httpd, Arguments, stand_alone ),
|
||||
Pid.
|
||||
|
||||
Arguments = [{bind_address, "localhost"}, {port, Port}, {ipfamily, inet},
|
||||
{modules, [Module]},
|
||||
{server_name,erlang:atom_to_list(Module)}, {server_root,"."}, {document_root,"."}],
|
||||
{ok, Pid} = inets:start( httpd, Arguments, stand_alone ),
|
||||
Pid.
|
||||
|
||||
httpd_stop( Pid ) ->
|
||||
inets:stop( stand_alone, Pid ).
|
||||
inets:stop( stand_alone, Pid ).
|
||||
|
||||
task() ->
|
||||
Pid = httpd_start( 8080, ?MODULE ),
|
||||
timer:sleep( 30000 ),
|
||||
httpd_stop( Pid ).
|
||||
Pid = httpd_start( 8080, ?MODULE ),
|
||||
timer:sleep( 30000 ),
|
||||
httpd_stop( Pid ).
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func main() {
|
||||
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
|
||||
fmt.Fprintln(w, "Goodbye, World!")
|
||||
})
|
||||
log.Fatal(http.ListenAndServe(":8080", nil))
|
||||
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
|
||||
fmt.Fprintln(w, "Goodbye, World!")
|
||||
})
|
||||
log.Fatal(http.ListenAndServe(":8080", nil))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@ import java.net.ServerSocket;
|
|||
import java.net.Socket;
|
||||
|
||||
public class HelloWorld{
|
||||
public static void main(String[] args) throws IOException{
|
||||
ServerSocket listener = new ServerSocket(8080);
|
||||
while(true){
|
||||
Socket sock = listener.accept();
|
||||
new PrintWriter(sock.getOutputStream(), true).
|
||||
println("Goodbye, World!");
|
||||
sock.close();
|
||||
}
|
||||
}
|
||||
public static void main(String[] args) throws IOException{
|
||||
ServerSocket listener = new ServerSocket(8080);
|
||||
while(true){
|
||||
Socket sock = listener.accept();
|
||||
new PrintWriter(sock.getOutputStream(), true).
|
||||
println("Goodbye, World!");
|
||||
sock.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
while (++(our $vn)) {
|
||||
open NC, "|-", qw(nc -l -p 8080 -q 1);
|
||||
print NC "HTTP/1.0 200 OK\xd\xa",
|
||||
"Content-type: text/plain; charset=utf-8\xd\xa\xd\xa",
|
||||
"Goodbye, World! (hello, visitor No. $vn!)\xd\xa";
|
||||
open NC, "|-", qw(nc -l -p 8080 -q 1);
|
||||
print NC "HTTP/1.0 200 OK\xd\xa",
|
||||
"Content-type: text/plain; charset=utf-8\xd\xa\xd\xa",
|
||||
"Goodbye, World! (hello, visitor No. $vn!)\xd\xa";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
use Plack::Runner;
|
||||
my $app = sub {
|
||||
return [ 200,
|
||||
[ 'Content-Type' => 'text/html; charset=UTF-8' ],
|
||||
[ '<html><head><title>Goodbye, world!</title></head><body>Goodbye, world!</body></html>' ]
|
||||
]
|
||||
[ 'Content-Type' => 'text/html; charset=UTF-8' ],
|
||||
[ '<html><head><title>Goodbye, world!</title></head><body>Goodbye, world!</body></html>' ]
|
||||
]
|
||||
};
|
||||
my $runner = Plack::Runner->new;
|
||||
$runner->parse_options('--host' => 'localhost', '--port' => 8080);
|
||||
|
|
|
|||
|
|
@ -15,4 +15,4 @@ server :- http_server(http_dispatch, [port(8080)]).
|
|||
% In this case we're returning a page with the title "Howdy" and the content,
|
||||
% wrapped in <h1></h1> tags, "Goodbye, World!".
|
||||
say_goodbye(_Request) :- reply_html_page([title('Howdy')],
|
||||
[h1('Goodbye, World!')]).
|
||||
[h1('Goodbye, World!')]).
|
||||
|
|
|
|||
|
|
@ -1,23 +1,23 @@
|
|||
If InitNetwork() = 0
|
||||
MessageRequester("Error", "Can't initialize the network !")
|
||||
End
|
||||
MessageRequester("Error", "Can't initialize the network !")
|
||||
End
|
||||
EndIf
|
||||
|
||||
Port = 8080
|
||||
|
||||
If CreateNetworkServer(0, Port)
|
||||
Repeat
|
||||
Delay(1)
|
||||
SEvent = NetworkServerEvent()
|
||||
If SEvent
|
||||
ClientID = EventClient()
|
||||
Select SEvent
|
||||
Case #PB_NetworkEvent_Data
|
||||
SendNetworkData(ClientID,@"Goodbye, World!",Len("Goodbye, World!"))
|
||||
CloseNetworkConnection(ClientID)
|
||||
EndSelect
|
||||
EndIf
|
||||
ForEver
|
||||
Repeat
|
||||
Delay(1)
|
||||
SEvent = NetworkServerEvent()
|
||||
If SEvent
|
||||
ClientID = EventClient()
|
||||
Select SEvent
|
||||
Case #PB_NetworkEvent_Data
|
||||
SendNetworkData(ClientID,@"Goodbye, World!",Len("Goodbye, World!"))
|
||||
CloseNetworkConnection(ClientID)
|
||||
EndSelect
|
||||
EndIf
|
||||
ForEver
|
||||
Else
|
||||
MessageRequester("Error", "Can't create the server (port in use ?).")
|
||||
MessageRequester("Error", "Can't create the server (port in use ?).")
|
||||
EndIf
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue