Network I/O and streaming in D2

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed Jun 30 10:15:18 PDT 2010


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


More information about the Digitalmars-d mailing list