Mail Archives: djgpp/2000/10/05/14:15:32
Hello.
Peter Remmers wrote:
>
> Richard Dawe <rich AT phekda DOT freeserve DOT co DOT uk> schrieb...
>
> > Another advantage of this is that less code needs to be put into
> > libsocket than e.g. for SOCK.VXD. libsocket contains code to
> > emulate certain things that SOCK.VXD doesn't provide, e.g. socket
> > options with getsockopt(). WSOCK.VXD and, no doubt, WSOCK2.VXD
> > should support these things directly, making libsocket "just"
> > a wrapper.
>
> What exactly does SOCK.VXD not provide? Isn't it itself just a wrapper
> for VTDI ?
SOCK.VXD does not provide:
* non-blocking connect();
* shutdown();
* socket options - (get|set)sockopt();
* support for any IP protocols other than UDP, TCP;
* multicast support.
In other words, just a basic socket interface, probably 90%-95% of what
you want to do with sockets. The above list is before we get on to the
bugs in what it /does/ provide. :(
BTW SOCK.VXD uses the TDI (Transport Driver Interface). VTDI is just the
driver that provides this on Windows '9x. TDI is supposedly portable
across Windows versions, but I think Windows NT has a richer interface.
> Is VTDI lacking some features?
Yes, I think so. It offers a simplified interface for using TCP/IP. If you
compare the features offered by TDI with those available with Winsock 2,
you'll see that Winsock 2 is much richer. The reason is this: TDI calls
another VxD - AFVXD.VXD IIRC - that actually does the networking. IIRC
WS2_32.DLL just calls into this VxD (probably with the Win32 function
DeviceIoControl()) for its networking.
TDI is still pretty useful.
> But even if you had managed it, watt-32 would have progressed
> independently anyways, right?
Yes, I suspect it would have been difficult to keep up with Watt-32.
> > I don't think I'd implement it as a DXE either. I don't think the
> > extra code would add that much to libsocket's library size. The
> > resolver (DNS)
>
> But you have DXE support on your to-to list!
Sure, it's on the to-do list, but there's no priority rating on the to-do
list. I haven't even investigated DXE support for libsocket!
> > code accounts for a lot of its size. I have been thinking about
> > switching to another resolver library (adns IIRC), but I have more
> > important things to do with my time. ;)
>
> Isn't that a contradiction to what you said above about the late night
> hacking? :-)
Heh, sure, but I have several choices for my late-night hacking sessions.
;) (But recently I have found that sleep, followed by programming the next
day to be more productive.)
> > > Of course, sock.vxd would not need to be installed beforehand, it
> > > just needs to be in the same directory as the executable...
> >
> > That can be added to the distributable "how to use libsocket in your
> > programs" guide.
>
> Where's this guide? Do you mean the "End-Users' Installation and
> Configuration Guide" (redist/u-guide.txt) ?
Yes, that's the one.
Bye,
--
Richard Dawe
[ mailto:richdawe AT bigfoot DOT com | http://www.bigfoot.com/~richdawe/ ]
- Raw text -