Saya sedang mendengar melalui netcat
nc -lkp 1902
Setiap kali saya membuat sambungan tcp dan cuba menghantar log, ia berfungsi
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")
Output
example-2022/11/18 technique24.go:21: this is a regular message1 example-2022/11/18 technique24.go:22: this is a regular message2 example-2022/11/18 technique24.go:23: this is a regular message3 example-2022/11/18 technique24.go:24: this is a regular message4 example-2022/11/18 technique24.go:25: this is a regular message5 example-2022/11/18 technique24.go:26: this is a regular message6
Tetapi apabila saya cuba membuat sambungan udp ia tidak berfungsi, bolehkah seseorang menjelaskan mengapa saya tidak mendapat apa-apa pada pembalak?
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")
Ingin membuat poc kecil untuk menghantar log melalui udp untuk mengurangkan tunggakan, cuba mewujudkan sambungan tcp dahulu, ia berfungsi dengan baik tetapi udp tidak, bolehkah seseorang menerangkan apa yang saya perlu lakukan untuk menjadikannya berfungsi? p>
Netcat mencipta sambungan TCP secara lalai melainkan dinyatakan sebaliknya. Untuk sambungan UDP, anda perlu menggunakan bendera -u
netcat. Dari laman netcat man
-u Gunakan UDP dan bukannya pilihan TCP lalai.
Jadi menukar pendengar kepada nc -luk 1902
sepatutnya menyelesaikan masalah dengan sambungan UDP.
Atas ialah kandungan terperinci Sambungan TCP Golang berfungsi tetapi UDP tidak berfungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!