module socketclient;

import dsfml.system.all;
import dsfml.network.all;

version (Tango)
{
    import tango.io.Console;
    import tango.io.Stdout;
}   
else
{
    import std.stdio;
}


void main()
{
    //The TCP socket
    SocketTCP client = new SocketTCP();
    //Try to connect to server (on localhost for this sample)
    client.connect(9000, IPAddress.LOCALHOST);
    
    display("Connected to server."w);
    
    //Prepare a packet with a string
    Packet p = new Packet();
    p.set("Hello from the client !"w);
    if (client.send(p) != SocketStatus.DONE) // Assert on error
        assert(0);
        
    //Clear the packet
    p.clear();
    
    //Wait for the response of the server and display it
    if (client.receive(p) != SocketStatus.DONE)
        assert(0);
    wchar[] c;
    p.get(c);
    display("Packet received : "w ~ c);
    read();
}

void display(wchar[] c)
{
    version (Tango)
    {
        Stdout(c).newline;
    }
    else
    {
        writefln("%s", c);
    }
}

void read()
{
    version (Tango)
    {
        Cin.get();
    }
    else
    {
        readln();
    }
}