Sean Kelly wrote:
Walter Bright Wrote:
Sean Kelly wrote:
Walter Bright Wrote:
Adam Ruppe wrote:
My network thing is very simple: it opens a socket, then wraps it up
in a File struct, via FILE*. Then, you can treat it the same way.
That's the traditional way to do it, but I'm not so sure it's the right way for
the future. Wouldn't it be better to have an interface to it that is a range,
rather than pretend it's a FILE* ?
And in either case, if the buffer is empty a get() operation will block,
correct?
I'm no expert in network programming, but yes. I suspect there should be a
settable timeout which should throw, too.
I've been thinking about this and I think this is probably what the majority of
apps want anyway. It isn't scalable, but server apps are a whole 'nother ball
of wax.
To obtain asynchronous operation, an app can spawn a secondary thread
using blocking I/O and passing stuff as messages. Indeed defining many
secondary threads does become a scalability issue.
Andrei