我正在通過 netcat 收聽 nc -lkp 1902每當我建立 tcp 連接并嘗試發送日志時,它都會工作 timeout := 30 * time.Second conn, err := net.DialTimeout("tcp", "localhost:1902", timeout) if err != nil { panic("Failed to connect to localhost:1902") } defer conn.Close() f := log.Ldate | log.Lshortfile logger := log.New(conn, "example-", f) logger.Println("This is a regular message1") logger.Println("This is a regular message2") logger.Println("This is a regular message3") logger.Println("This is a regular message4") logger.Println("This is a regular message5") logger.Println("This is a regular message6")輸出example-2022/11/18 technique24.go:21: This is a regular message1example-2022/11/18 technique24.go:22: This is a regular message2example-2022/11/18 technique24.go:23: This is a regular message3example-2022/11/18 technique24.go:24: This is a regular message4example-2022/11/18 technique24.go:25: This is a regular message5example-2022/11/18 technique24.go:26: This is a regular message6但是每當我嘗試建立 udp 連接時它都不起作用,誰能解釋為什么我的記錄器上什么也沒有? timeout := 30 * time.Second conn, err := net.DialTimeout("udp", "localhost:1902", timeout) if err != nil { panic("Failed to connect to localhost:1902") } defer conn.Close() f := log.Ldate | log.Lshortfile logger := log.New(conn, "example-", f) logger.Println("This is a regular message1") logger.Println("This is a regular message2") logger.Println("This is a regular message3") logger.Println("This is a regular message4") logger.Println("This is a regular message5") logger.Println("This is a regular message6")想要通過 udp 發送日志以減少積壓,嘗試先建立一個 tcp 連接并且它工作正常但 udp 不起作用,任何人都可以解釋我必須做些什么才能讓它工作嗎?
1 回答

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
除非另有說明,否則 Netcat 默認創建 TCP 連接。對于 UDP 連接,您需要使用-u
netcat 的標志。
-u 使用 UDP 而不是 TCP 的默認選項。
因此,將您的偵聽器更改為nc -luk 1902
應該可以解決 UDP 連接的問題。
- 1 回答
- 0 關注
- 154 瀏覽
添加回答
舉報
0/150
提交
取消