On Friday, 6 September 2013 at 21:02:09 UTC, Ali Çehreli wrote:
On 09/06/2013 01:47 PM, Savsak wrote:
Hi Friends,
Socket programming with the D programming language is the
most simple
way how to do it
For example, the sample with Tango, but not by phobos
How do I do this with a simple, but phobos
import tango.io.Stdout;
import tango.net.Socket;
import tango.net.ServerSocket;
import tango.net.SocketConduit;
int main() {
Socket server = new Socket(AddressFamily.UNIX,
SocketType.STREAM,
ProtocolType.IP);
while(true) {
Socket client = server.accept();
char[1024] buffer;
client.receive(buffer);
Stdout.format(The client said'{}'., buffer);
client.shutdown(SocketShutdown.BOTH);
client.detach();
}
return 0;
}
Here is a Phobos translation:
import std.stdio;
import std.socket;
void main() {
Socket server = new TcpSocket();
server.setOption(SocketOptionLevel.SOCKET,
SocketOption.REUSEADDR, true);
server.bind(new InternetAddress(8080));
server.listen(1);
while(true) {
Socket client = server.accept();
char[1024] buffer;
auto received = client.receive(buffer);
writefln(The client said:\n%s, buffer[0.. received]);
enum header =
HTTP/1.0 200 OK\nContent-Type: text/html;
charset=utf-8\n\n;
string response = header ~ Hello World!\n;
client.send(response);
client.shutdown(SocketShutdown.BOTH);
client.close();
}
}
Ali
P.S. Note that there is also the D.learn newsgroup.
P.P.S. This question came up on two separate Turkish D forums
recently:
http://ddili.org/forum/post/10063
http://forum.ceviz.net/d-dili/127048-ddili-socket-okuma-veri-gonderme-quotnon-blocking-i-oquot.html
Thanks acehreli
In the example you give, but I receive this error during
compilation.
savsak:~ savsak$ dmd /Users/savsak/Desktop/test.d
ld: library not found for -lphobos2
collect2: ld returned 1 exit status
--- errorlevel 1