67 lines
1.1 KiB
D
67 lines
1.1 KiB
D
|
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();
|
||
|
}
|
||
|
}
|