Hi guys,

I've only been trying to learn D for a short while, and compared to the other more popular programming languages, I've been able to find very little helpful and updated documentation or tutorials on it.

I basically need help getting data from a website, just the HTML of a webpage, in this case a PHP page. I'm using the following code which compiles fine, but when run it just encounters a 'Socket.ERROR' with a value of -1.

I'm not sure what I'm doing wrong, but any help or suggestions would be appreciated. As I said, I'm quite new to D...

---
//readData.d
module main;

import std.stdio;
import std.socket;
import std.cstream;

int main(string[] args)
{
        string host = "www.dprogramming.com";
        ushort port = 80;
        
        Socket listener = new TcpSocket;
        assert(listener.isAlive);
        listener.blocking = false;
        
        listener.connect(new InternetAddress(host, port));
        
        char[] msg;
char[] req = cast(char[]) "GET /internet.php HTTP/1.1\r\nHost: www.dprogramming.com\r\n\r\n";
        
        listener.send(req);
        
        while (1)
        {
                int bytes;
                char[1024] buf;
                bytes = listener.receive(buf);
                if (Socket.ERROR == bytes)
                {
                        writeln("Connection Error ", Socket.ERROR);
                        listener.close();
                        din.readLine();
                        return 1;
                }
                else if (0 == bytes)
                {
                        try
                        {
                                writeln("Connection to target lost.");
                        }
                        catch (SocketException)
                        {
                                writeln("Connection closed.");
                        }
                        listener.close();
                        din.readLine();
                        return 1;
                }
                else
                {
writeln("Recieved ", bytes, "bytes from ", listener.remoteAddress().toString(), ": \"", buf[0 .. bytes], "\"");
                }
        }
}
---

- Alex.

Reply via email to