亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 cmd ping

從 cmd ping

Go
慕碼人8056858 2022-11-23 14:12:22
我有這個應用程序需要 ping google.com 以查看網絡連接是否有效。以下工作代碼正常并列出目錄內容:cmd = exec.Command("ls", "-lah")var stdout, stderr bytes.Buffercmd.Stdout = &stdoutcmd.Stderr = &stderrerr = cmd.Run()if err != nil {    log.Fatalf("cmd.Run() failed with %s\n", err)}outStr, errStr := string(stdout.Bytes()), string(stderr.Bytes())fmt.Printf("out:\n%s\nerr:\n%s\n", outStr, errStr)當我更改參數時,它會掛起。cmd = exec.Command("ping", "goole.com")這會導致錯誤:cmd.Run() failed with exit status 2cmd = exec.Command("ping", "https://www.goole.com")在我將 args 更改為:cmd = exec.Command("ping -c 5", "goole.com")我得到cmd.Run() 因 exec 失?。骸皃ing -c 5”:在 $PATH 中找不到可執行文件我正在為我的依賴項使用 go mod。知道我做錯了什么嗎?
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

  1. 錯誤是因為你提到了https. 嘗試運行為

cmd = exec.Command("ping", "www.google.com")或者簡單地"google.com"也應該工作。

  1. 第一個掛起的原因是因為您在調用ping時沒有任何其他無限運行 ping 的參數。-c因此,請嘗試使用提及計數的 args 來調用它。這應該工作。

cmd := exec.Command("ping", "-c" , "3", "google.com")

更好的是,以更小的間隔-i 0.1或您認為合適的方式使其更快。但請確保您添加了-c.


查看完整回答
反對 回復 2022-11-23
?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

ping命令無限期運行,這就是它似乎掛起的原因 -ping永遠不會退出。您可以通過使用參數限制 ping 嘗試次數來強制它退出-c,例如

ping -c 5 goole.com將嘗試 5 次 ping。這是外殼形式。在您的代碼中,使用:

cmd = exec.Command("ping", "-c1", "goole.com")

https://www.goole.com失敗,因為ping需要主機名,而不是 URL。


查看完整回答
反對 回復 2022-11-23
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

為什么要生成一個進程來 ping 一個 IP 地址?嘗試go-ping,實現 ICMP ping 的幾個包之一。



查看完整回答
反對 回復 2022-11-23
  • 3 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號