On Sunday, 15 November 2020 at 00:05:08 UTC, Marcone wrote:
Socket s = new Socket(AddressFamily.INET, SocketType.STREAM);
s.connect(new InternetAddress("domain.com", 80));

I want that program raise an error if reach for example 30 seconds of timeout.

Perhaps using Socket.select and SocketSet?

import std.socket;
import std.stdio;
import core.time;

void main()
{
    Socket s = new Socket(AddressFamily.INET, SocketType.STREAM);
    s.blocking = false;
    auto set = new SocketSet(1);
    set.add(s);
    s.connect(new InternetAddress("dlang.org", 80));
    scope(exit) s.close();
    Socket.select(null, set, null, dur!"seconds"(10));
    if (set.isSet(s))
    {
        writeln("socket is ready");
    }
    else
    {
        writeln("could not connect");
    }
}

Reply via email to