web-dev-qa-db-fra.com

Pourquoi le port est-il une chaîne et non un entier?

La méthode Port renvoie une chaîne et non un entier. Quelle en est la raison et est-il prudent de préfixer le port avec ":"?

103
R3turnz

En effet, ce qui apparaît après les deux points peut être un numéro de port ou un nom de service.

Voici un exemple valide dans lequel le nom du service est utilisé à la place d'un numéro de port:

listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...

Le mappage de port pour un service particulier peut être recherché à l'aide de net.LookupPort . Sur les systèmes Unix, le /etc/services le fichier provient des mappages.

143
Tim Cooper

Pour un nombre, la valeur par défaut est 0: si une fonction

 func (u * URL) Port () string

numéro de retour au lieu de piquer le port sera 0

Le port 0 est un port réservé dans les réseaux TCP/IP, ce qui signifie qu'il ne doit pas être utilisé dans les messages TCP ou UDP. Toutefois, le port 0 revêt une signification particulière pour la programmation réseau, notamment la programmation de sockets Unix: pour demander des ports dynamiques alloués par le système.

il est nécessaire de programmer dans plusieurs fonctions

1
Fadid