Hello, i want to create basic example of 2 apps which will be
exchanging data through socket connection. I have:
server
======
import std.stdio;
import std.string;
import std.socket;
void main()
{
auto sock = new Socket(AddressFamily.INET, SocketType.STREAM,
ProtocolType.IP);
sock.bind(new InternetAddress("0.0.0.0", 7777));
sock.listen(1);
Socket incommingConn = sock.accept();
void[] buff;
incommingConn.receive(buff);
writeln((cast(ubyte[])buff).assumeUTF());
buff = cast(void[])representation("OK.");
incommingConn.send(buff);
incommingConn.close();
sock.close();
}
Client
======
import std.stdio;
import std.string;
import std.socket;
void main()
{
auto sock = new Socket(AddressFamily.INET, SocketType.STREAM,
ProtocolType.IP);
sock.connect(new InternetAddress("0.0.0.0", 7777));
void[] buff = ['a', 's', 'd', 'f'];
sock.send(buff);
sock.receive(buff);
writeln((cast(ubyte[])buff).assumeUTF());
sock.close();
}
I was expecting to see string "asdf" in server terminal, but
there is only blank line. Also client prints "OK.f" instead of
"Ok.". I'm doing something wrong?