Lors de la liaison d'un client TCP socket à un port local spécifique avec Winsock, SO_REUSEADDR n'a aucun effet

Je suis de la liaison d'un client socket TCP sur un port local spécifique. Pour gérer la situation où la prise reste en TIME_WAIT de l'état pour un certain temps, j'utilise setsockopt() avec SO_REUSEADDR sur un socket.

Il fonctionne sur Linux, mais ne fonctionne pas sur Windows, j'obtiens WSAEADDRINUSE sur connect() appel lors de la connexion précédente est encore en TIME_WAIT.

MSDN n'est pas exactement clair ce qui doit se passer avec les sockets client:

[...] Pour des applications de serveur qui ont besoin de lier prises multiples pour le même numéro de port, pensez à utiliser setsockopt (SO_REUSEADDR). Les applications clientes doivent habituellement pas appeler bind—connecter choisit automatiquement un port inutilisé. [...]

Comment puis-je éviter cela?

Pouvez-vous nous dire pourquoi vous souhaitez lier un client socket sur un port?
c'est une exigence du système externe, je suis l'interfaçage avec, et il est impossible de l'éviter.
pouvez-vous partager un code de travail pièce de liaison d'un socket client sur Linux?
ma question: stackoverflow.com/questions/4711608/...

OriginalL'auteur Alex B | 2010-04-09