第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Go 中的標(biāo)志如何使其連接到服務(wù)器

Go 中的標(biāo)志如何使其連接到服務(wù)器

Go
楊魅力 2023-03-07 14:31:48
我正在嘗試創(chuàng)建一個(gè)小程序,如果用戶從命令行輸入 ip 或端口,它就會(huì)連接到服務(wù)器。my codeip := flag.String("i","","") // i choosen user provide ip but port will be default :8080port := flag.String("p", "","") // p choosen has connect to port :???? but ip will be local hostipPort := flaf.String("b","","") // b choosen user provides both ip and portdefault_Ip := flag.String("d","","")// d choosen it connect to localhost ip and port 127.0.0.1:8080flag.Parse()log.Fatal(http.ListenAndServe(ip, nil))log.Fatal(http.ListenAndServe(port, nil))log.Fatal(http.ListenAndServe(ipPort, nil))log.Fatal(http.ListenAndServe(default, nil))我做錯(cuò)了什么?指出我正確的方向?
查看完整描述

2 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

有幾個(gè)問題:

  • flag.String 返回一個(gè)指向字符串的指針。應(yīng)用程序在調(diào)用 http.ListenAndServe 時(shí)必須取消引用指針:log.Fatal(http.ListenAndServe(*ip, nil))

  • http.ListenAndServe 函數(shù)會(huì)阻塞,直到發(fā)生錯(cuò)誤。直到第一臺服務(wù)器出現(xiàn)故障,第二臺服務(wù)器才會(huì)啟動(dòng),依此類推。如果打算運(yùn)行多個(gè)服務(wù)器,則在 goroutines 中運(yùn)行服務(wù)器。

  • 該應(yīng)用程序沒有任何代碼來實(shí)現(xiàn)注釋中描述的默認(rèn)設(shè)置。

這是提供默認(rèn)值的更好方向:使用單個(gè)字符串標(biāo)志。檢查標(biāo)志值以確定是否指定了主機(jī)、端口或兩者。根據(jù)需要填寫默認(rèn)值。

func fixAddr(s string) string {

    host, port, err := net.SplitHostPort(s)

    if err != nil {

        host = s // assume s is host only on error

        port = ""

    }

    // Fill in defaults.

    if host == "" {

        host = "127.0.0.1"

    }

    if port == "" {

        port = "8080"

    }

    return host + ":" + port

}


addr := flag.String("a","127.0.0.1:8080","")

flag.Parse()

log.Fatal(http.ListenAndServe(fixAddr(*addr), nil))

更好的方向是要求用戶在命令行中輸入有效地址并將其直接傳遞給 ListenAndServe。


addr := flag.String("a","127.0.0.1:8080","")

flag.Parse()

log.Fatal(http.ListenAndServe(*addr, nil))


查看完整回答
反對 回復(fù) 2023-03-07
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

利用標(biāo)志默認(rèn)值。


addr := flag.String("a", "", "")

host := flag.String("i","127.0.0.1","")

port := flag.String("p", "8080","")

flag.Parse()

hostport := *addr

if hostport = "" {

    hostPort = net.JoinHostPort(*host, *port)

}

log.Fatal(http.ListenAndServe(hostport, nil))


查看完整回答
反對 回復(fù) 2023-03-07
  • 2 回答
  • 0 關(guān)注
  • 114 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號