> Besides that, I think using WSADuplicateSocket will suffer from the
> same problem that my method does: there is code in rb_w32_select that
> prevents select() from being called on sockets not created in the
> current process by Ruby's own win32 wrappers around socket(),
> accept(), etc.. See the extract_fd call -> is_not_socket -> is_socket
> -> lookup in socklist.

you might be able to get by with

IO.new(some_socket_number)

Though I haven't tried it.
-=r