2010-05-19 5 views
2

Je voulais juste savoir comment utiliser C pour attribuer automatiquement un port libre (et voir ce qui était utilisé) si un numéro de port spécifique n'est pas fourni.C attribuer automatiquement le port

Par exemple, j'utilise ceci:

struct sockaddr_in address; 
address->sin_family = AF_INET; 
address->sin_addr.s_addr = INADDR_ANY; 
address->sin_port = htons(port); 

Mais comment puis-je remplacer l'affectation sin_port et laisser C assigner automatiquement pour moi?

Merci!

Répondre

4

Matt a déjà répondu à la partie "comment affecter un port libre" (utilisez sin_port = 0).

Pour répondre à la deuxième partie, à savoir « comment voir ce qui a été utilisé », utilisez getsockname()

+0

Merci, celui-ci a répondu à la question complètement. – Gary

3

Utilisez simplement la valeur 0. Vous pouvez également ignorer complètement l'étape de reliure si l'interface que vous utilisez ne vous intéresse pas non plus.

+0

Merci pour cela - je ne pouvais pas trouver semble indiquant où qu'une valeur de 0 ferait cela. – Gary