Thanks, Ian.

Yes, I think that is doable.

Dan


On Mon, 2018-10-01 at 12:01 -0700, Ian Lance Taylor wrote:
> On Sun, Sep 30, 2018 at 6:41 PM, Dan Kortschak
> <dan.kortsc...@adelaide.edu.au> wrote:
> > 
> > 
> > I have been translating some C socket networking code (not my main
> > area
> > of expertise) and there is something that I don't see a way to do
> > with
> > net.TCPConn.
> > 
> > The original code sets a revc timeout using
> > 
> > ```
> > setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
> > ```
> > 
> > Short of messing around with the fd and using
> > syscall.SetsockoptTimeval
> > (or unix.SetsockoptTimeval) which seems like overkill, is there a
> > sensible way to do this or is it omitted because it is not a useful
> > thing to do?
> As you know, Go's net package uses deadlines rather than
> timeouts.  We
> made this choice because timeouts are inherently ambiguous when
> reading more than 1 byte from a TCP connection: does the timeout
> refer
> to reading all the requested data, or does it refer to reading a
> single byte, or does it refer to the amount of time between each byte
> that arrives?  And in the modern era this has to be considered in the
> context of slowloris attacks.  Rather than try to sort out what
> people
> might want, we just use a deadline, which is always clear.
> 
> The best approach for your case is going to be to figure out what the
> code you are porting actually wants.
> 
> Ian

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to