2017-12-27 155 views

Odpowiedz

140

Dzieje się tak dlatego, że po dwukropku może znajdować się numer portu lub nazwa usługi.

Poniższy przykład jest ważne gdzie nazwa usługi jest używany zamiast numeru portu:

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

Mapowanie portu dla określonej usługi można obejrzeć za pomocą net.LookupPort. W systemach uniksowych plik /etc/services pochodzi z mapowań.

+1

Zawsze intryguje mnie dychotomia typu otwartego/zamkniętego typu. Chciałbym zobaczyć coś takiego jak typ _mixed_, w którym są pewne wartości domyślne (tutaj np. Dobrze znane porty i usługi), ale także pozwala je rozszerzyć, ostatecznie wspierając autouzupełnianie. W mojej ograniczonej wiedzy praktycznej ADT TypeScripts są najbliższe, być może jerzyki ADT-ów mogą wyrazić to również bezpośrednio. –

1

Dla wielu Domyślną wartością jest 0: jeśli funkcja

func (u * URL) Port() string 

numer zwrotny zamiast żądło port będzie 0

Port 0 jest zarezerwowanym portem w sieci TCP/IP, co oznacza, że nie powinno być używane w komunikatach TCP lub UDP. Jednak port 0 ma szczególne znaczenie w programowaniu sieci, w szczególności w programowaniu gniazd Unix: do żądania przydzielonych przez system portów dynamicznych.

to jest potrzeba programowania w kilku funkcjach