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

Reply via email to