Golang ialah bahasa pengaturcaraan yang pantas dan cekap dengan ciri konkurensi yang boleh digunakan untuk pembangunan pelbagai aplikasi. Dari segi komunikasi rangkaian, Golang juga mempunyai fungsi yang berkuasa yang boleh mencapai komunikasi point-to-point. Artikel ini akan memperkenalkan cara menggunakan Golang untuk mencapai komunikasi titik ke titik.
1. Konsep komunikasi point-to-point
Komunikasi point-to-point merujuk kepada kaedah komunikasi yang bertukar secara langsung antara dua komputer dalam rangkaian tanpa melalui komputer lain. Dalam komunikasi point-to-point, data boleh dihantar dalam kedua-dua arah antara dua komputer, dan kelajuan penghantaran data adalah pantas, dan tidak perlu mempertimbangkan isu kebocoran maklumat.
2. Pelaksanaan komunikasi titik ke titik Golang
Golang, sebagai bahasa pengaturcaraan yang cekap, menyediakan fungsi API dan perpustakaan yang kaya, yang boleh merealisasikan komunikasi titik ke titik dengan mudah.
Pertama, kita perlu menggunakan rangkaian perpustakaan rangkaian yang disediakan di Golang untuk mewujudkan sambungan Soket. Berikut ialah kod contoh mudah:
package main import ( "fmt" "net" "os" ) func main() { arguments := os.Args if len(arguments) == 1 { fmt.Println("Please provide a host:port string") return } CONNECT := arguments[1] c, err := net.Dial("tcp", CONNECT) if err != nil { fmt.Println(err) return } for { var msg string fmt.Scan(&msg) fmt.Fprintf(c, msg+"\n") buf := make([]byte, 1024) n, err := c.Read(buf) if err != nil { fmt.Println("Connection closed") return } receive := string(buf[:n]) fmt.Print("received: ", receive) } }
Dalam kod di atas, kami menggunakan fungsi net.Dail untuk mewujudkan sambungan. Antaranya, alamat sambungan disalurkan melalui parameter baris arahan. Selepas sambungan berjaya, kami boleh menghantar mesej kepada pelayan melalui input, dan pada masa yang sama, gunakan fungsi c.Read untuk membaca mesej yang dikembalikan oleh pelayan.
Seterusnya, mari kita lihat cara melaksanakan kod sebelah pelayan. Berikut ialah contoh mudah:
package main import ( "fmt" "net" "os" ) func main() { arguments := os.Args if len(arguments) == 1 { fmt.Println("Please provide a port number") return } PORT := ":" + arguments[1] l, err := net.Listen("tcp", PORT) if err != nil { fmt.Println(err) return } defer l.Close() for { c, err := l.Accept() if err != nil { fmt.Println(err) continue } fmt.Println("client connected") go handleConnection(c) } } func handleConnection(c net.Conn) { for { buf := make([]byte, 1024) n, err := c.Read(buf) if err != nil { c.Close() return } receive := string(buf[:n]) fmt.Print("received: ", receive) msg := "Hello, client\n" c.Write([]byte(msg)) } }
Dalam kod di atas, kami menggunakan fungsi net.Listen untuk memulakan pelayan pada port yang ditentukan. Seterusnya, kami menggunakan fungsi l.Accept untuk menerima permintaan sambungan pelanggan. Setelah sambungan diterima, kita boleh membaca mesej yang dihantar oleh pelanggan dan menghantar semula mesej itu kepada pelanggan.
3. Kelebihan dan kekurangan komunikasi point-to-point
Komunikasi peer-to-point mempunyai banyak kelebihan, termasuk:
Walaupun komunikasi point-to-point popular, ia juga mempunyai beberapa kelemahan:
4. Ringkasan
Artikel ini memperkenalkan cara menggunakan Golang untuk mencapai komunikasi titik ke titik. Dengan mewujudkan sambungan Soket, kami boleh memindahkan data secara langsung antara dua komputer. Walaupun komunikasi titik ke titik mempunyai beberapa kelemahan, dalam beberapa senario aplikasi tertentu, ia boleh memberikan penghantaran data yang cepat, cekap dan selamat.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan komunikasi rakan ke rakan menggunakan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!