Oh no, this discuss let me start to think another usocket API extension:
How can you get your OS's interface addresses through a programming method? If there's more than one of them?
For example, on Linux, if you have lo, eth0 and eth1, i.e. two link plus the loopback, how can you get the three addresses (one of them is 127.0.0.1)? Again, no portable method, no such support in usocket. Actually, almost no CL's networking API support this. But, in most C- based networking programming, It's the most fundamental step in server side programming.
But, I think, to support this (most of time, unuse) feature, it's also quite trivial: direct use each CL's existing networking code plus FFI, 10~20 lines of code per implementation should work.
Oh, seems I'm going too far... Just forget this brain storm if no one need it:) In the future, if some guys start to write servers (smtp, pop3, or other httpd) in CL, this feature (auto choose interfaces to listen) may be needed.
Regards,
Chun Tian (binghe)
在 2008-7-26,上午9:36, Chris Dean 写道:
"Chun Tian (binghe)" binghe.lisp@gmail.com writes:
Nice. And I said this twice on cmucl-imp...
Thanks for the perseverance. It is a funny sort of discussion since bind(2) is part of the the standard TCP/IP api. I am having trouble thinking of a system that doesn't support bind! Perl, Python, Ruby, Squeak, PLT Scheme, SBCL, etc all have bind.
Cheers, Chris Dean