asyncore's connect() method should interpret the winsock errors; these are different from Unix (and different between the Win98 family and the Win2k family).
klimkin: Please explain how either of the versions of patch #909005 fix the problem. From what I can tell, the only change you made was to move the accept() handling of errors to the handle_read() method. Guido: In terms of winsock errors, which are actually raised on connection error between win98, win2k, and/or XP, 2003, and Vista?
Sorry, but 2 years ago we were developing this for Linux and XP only;). Even they say to be POSIX, they behave a little differently. As I remember, we have added handling of some E* return codes, which was appearing for non-blocking connect on XP. If you connect while in blocking state, you won't get those values.
The only windows-related error on connect() should be EINVAL From http://msdn.microsoft.com/en-us/library/ms737625 : > WSAEALREADY > A nonblocking connect call is in progress on the specified socket. The same approach is adopted by Twisted which just returns in that case. A patch is in attachment. Assigning the issue to me as a reminder to commit the patch if no further comments are submitted in the next days.