lier un numéro de port à un socket TCP (sortie) pour envoyer des paquets

Je sais qu’il n’est pas facile de lier un numéro de port à une prise TCP que vous utiliseriez pour envoyer des données (car les systèmes lient généralement un port aléatoire à des sockets).

Mais j’ai lu sur un article qu’en utilisant des méthodes de réseau de bas niveau , vous pouvez lier un numéro de port à un socket TCP, puis l’utiliser pour envoyer des données?

Est-ce que quelqu’un a une idée de la façon dont cela pourrait être fait?

J’utilise le langage de programmation c

Liez-le avant de vous connecter.

s = socket(AF_INET, SOCK_STREAM, 0); /* ... */ memset(&client_addr, 0, sizeof(client_addr)); client_addr.sin_family = AF_INET; client_addr.sin_port = htons(22222); if (bind(s, (struct sockaddr *) &client_addr, sizeof(client_addr)) < 0) { perror("bind"); exit(1); } connect(s, (struct sockaddr *) &server_addr, sizeof(server_addr)); 

En fait, c’est assez facile. Utilisez simplement la fonction bind comme vous le feriez pour un serveur.

Vous pouvez simplement appeler bind() avant connect() dans un client de la même manière que vous appelleriez bind() avant listen() sur un serveur. Il n’y a rien de plus compliqué que cela.