import std.stdio ;
import std.socket ;
const HOST = "www.c-plusplus.de" ;
const PATH = "/forum" ;
const PORT = 80 ;
void main( )
{
try
{
auto sock = new TcpSocket( AddressFamily.INET ) ;
foreach ( addr; getAddress( HOST, PORT) )
{
try
{
sock.connect ( addr) ;
break ;
}
catch ( SocketException e)
{ }
}
if ( ! sock.isAlive )
throw new SocketException( "error connecting" ) ;
sock.send ( "GET " ~ PATH ~ "\r \n "
"Host: " ~ HOST ~ "\r \n "
"Connection: close\r \n "
"HTTP/1.1\r \n "
"\r \n " ) ;
auto result = new char [ 0 ] ;
auto buf = new char [ 1024 ] ;
ptrdiff_t recvd;
do result ~= buf[ 0 .. ( recvd = sock.receive ( buf) ) ] ;
while ( recvd > 0 ) ;
write( result) ;
}
catch ( SocketException e)
{
writeln( e.msg ) ;
}
}
aW1wb3J0IHN0ZC5zdGRpbzsKaW1wb3J0IHN0ZC5zb2NrZXQ7Cgpjb25zdCBIT1NUID0gInd3dy5jLXBsdXNwbHVzLmRlIjsKY29uc3QgUEFUSCA9ICIvZm9ydW0iOwpjb25zdCBQT1JUID0gODA7Cgp2b2lkIG1haW4oKQp7Cgl0cnkKCXsKCQlhdXRvIHNvY2sgPSBuZXcgVGNwU29ja2V0KEFkZHJlc3NGYW1pbHkuSU5FVCk7CgkJCgkJZm9yZWFjaChhZGRyOyBnZXRBZGRyZXNzKEhPU1QsIFBPUlQpKQoJCXsKCQkJdHJ5CgkJCXsKCQkJCXNvY2suY29ubmVjdChhZGRyKTsKCQkJCWJyZWFrOwoJCQl9CgkJCQoJCQljYXRjaChTb2NrZXRFeGNlcHRpb24gZSkKCQkJe30KCQl9CgkJCgkJaWYoIXNvY2suaXNBbGl2ZSkKCQkJdGhyb3cgbmV3IFNvY2tldEV4Y2VwdGlvbigiZXJyb3IgY29ubmVjdGluZyIpOwoJCQoJCXNvY2suc2VuZCgiR0VUICIgfiBQQVRIIH4gIlxyXG4iCgkJICAgICAgICAgICJIb3N0OiAiIH4gSE9TVCB+ICJcclxuIgoJCSAgICAgICAgICAiQ29ubmVjdGlvbjogY2xvc2VcclxuIgoJCSAgICAgICAgICAiSFRUUC8xLjFcclxuIgoJCSAgICAgICAgICAiXHJcbiIpOwoJCQoJCWF1dG8gcmVzdWx0ID0gbmV3IGNoYXJbMF07CgkJYXV0byBidWYgPSBuZXcgY2hhclsxMDI0XTsKCQlwdHJkaWZmX3QgcmVjdmQ7CgkJCgkJZG8gcmVzdWx0IH49IGJ1ZlswIC4uIChyZWN2ZCA9IHNvY2sucmVjZWl2ZShidWYpKV07CgkJd2hpbGUocmVjdmQgPiAwKTsKCQkKCQl3cml0ZShyZXN1bHQpOwoJfQoJCgljYXRjaChTb2NrZXRFeGNlcHRpb24gZSkKCXsKCQl3cml0ZWxuKGUubXNnKTsKCX0KfQ==