Salut,
Je développe un logiciel (avec C++ Builder) de réception de messages d'alarmes. Mon soft est serveur TCP/IP et écoute un ou plusieurs ports. Avec un équipement d'un constructeur, j'ai des problèmes de connexions : il faut environ une minute pour qu'un des équipements se reconnecte après une déconnexion.
Les traces Wireshark montrent - en caractères bien rouges - que ces équipements réutilisent le même numéro de port source pour toutes les connexions [TCP Port numbers reused]. Ceci est contraire aux recommandations (voir RFC 1323, annexes B.2, http://www.ietf.org/rfc/rfc1323.txt) : "Applications built upon TCP that close one connection and open a new one (e.g., an FTP data transfer connection using Stream mode) must choose a new socket pair each time.".
Je pense que les problèmes viennent de là. Ca marche bien avec d'autres systèmes qui changent leur numéro de port source à chaque connexion.
Bref, je cherche s'il est possible de forcer le numéro de port source à l'ouverture d'une connexion TCP/IP client. Tout ça pour tenter, avec un logiciel de test, de reproduire ces problèmes de connexions. Je n'ai pas trouvé comment faire, ni dans les fonctions de type BSD (socket, bind, connect), ni dans les fonctions de l'API Win32 : WSAxxx.
Quelqu'un connaîtrait-il la fonction ou le paramètre magique ?
Quant à ouvrir un socket en mode RAW... Je suis pas très chaud pour me retaper toute la pile TCP !
---------------
If I want to fail and succeed, which I have done ?