This question comes up on the CocoaAsyncSocket list periodically.  Robbie
Hanson's post (the third one down), explains what is happening at the OS
level:

http://groups.google.com/group/cocoaasyncsocket/browse_thread/thread/8703a9ae74d5104f/a2297fe10c376c01


Not related to ruby, but it might help you understand what's going on.

Lou