D Lang Socket Programming Example

Savsak savsaktheteam at gmail.com
Sun Sep 8 03:42:21 PDT 2013


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


More information about the Digitalmars-d mailing list