Files
ldc/tango/example/networking/socketserver.d
Tomas Lindquist Olsen b15b3484c8 [svn r136] MAJOR UNSTABLE UPDATE!!!
Initial commit after moving to Tango instead of Phobos.

Lots of bugfixes...

This build is not suitable for most things.
2008-01-11 17:57:40 +01:00

54 lines
1.7 KiB
D

/*******************************************************************************
Shows how to create a basic socket server, and how to talk to
it from a socket client. Note that both the server and client
are entirely simplistic, and therefore this is for illustration
purposes only. See HttpServer for something more robust.
*******************************************************************************/
private import tango.core.Thread;
private import tango.io.Console;
private import tango.net.ServerSocket,
tango.net.SocketConduit;
/*******************************************************************************
Create a socket server, and have it respond to a request
*******************************************************************************/
void main()
{
const int port = 8080;
// thread body for socket-listener
void run()
{
auto server = new ServerSocket (new InternetAddress(port));
// wait for requests
auto request = server.accept;
// write a response
request.output.write ("server replies 'hello'");
}
// start server in a separate thread, and wait for it to start
(new Thread (&run)).start;
Thread.sleep (0.250);
// make a connection request to the server
auto request = new SocketConduit;
request.connect (new InternetAddress("localhost", port));
// wait for and display response (there is an optional timeout)
char[64] response;
auto len = request.input.read (response);
Cout (response[0..len]).newline;
request.close;
}