Bagaimana untuk memprogram menggunakan UDP dalam Go?
UDP (User Datagram Protocol) ialah protokol berorientasikan tanpa sambungan dan merupakan protokol yang sangat penting dalam lapisan pengangkutan. Ia boleh menghantar data terus kepada hos sasaran tanpa membuat sambungan, jadi ia digunakan secara meluas dalam penghantaran data masa nyata, permainan dan aplikasi lain, dan lebih sesuai daripada TCP dalam beberapa senario.
Menggunakan pengaturcaraan UDP dalam bahasa Go juga sangat mudah. Artikel ini akan memperkenalkan cara menggunakan pengaturcaraan UDP dalam bahasa Go.
- Fahami datagram protokol UDP
Dalam protokol UDP, data dikapsulkan ke dalam paket UDP, juga dipanggil datagram. Datagram mengandungi nombor port sumber, nombor port destinasi, panjang, checksum dan maklumat lain.
Dalam bahasa Go, UDPConn pakej bersih boleh digunakan untuk membaca dan menulis datagram UDP.
- Tulis atur cara pelayan UDP
Dalam atur cara pelayan UDP, anda perlu mencipta alamat UDP terlebih dahulu, iaitu, gunakan kaedah ResolveUDPAddr dalam pakej bersih, yang menerima dua parameter, masing-masing jenis protokol dan alamat pelayan.
Kemudian, gunakan kaedah ListenUDP dalam pakej bersih untuk mendengar alamat Kaedah ini akan mengembalikan objek UDPConn, yang boleh digunakan untuk menerima dan menghantar datagram UDP.
Langkah seterusnya ialah proses membaca datagram Gunakan kaedah ReadFromUDP objek UDPConn untuk membaca datagram yang dihantar oleh klien Kaedah ini akan menyekat sehingga datagram diterima dan mengembalikan objek ralat dan datagram objek. Selepas membaca data, anda boleh mengeluarkan data dan memproses data, seperti mengira nilai cincang data. Kemudian gunakan kaedah WriteToUDP objek UDPConn untuk menghantar datagram tindak balas kepada klien.
Berikut ialah program pelayan UDP yang mudah:
package main import ( "fmt" "net" ) func main() { ip := net.ParseIP("127.0.0.1") addr := &net.UDPAddr{ IP: ip, Port: 8080, } conn, err := net.ListenUDP("udp", addr) if err != nil { fmt.Println(err) return } defer conn.Close() fmt.Println("UDP server listening on port ", addr.Port) for { data := make([]byte, 1024) n, addr, err := conn.ReadFromUDP(data) if err != nil { fmt.Println("Error: ", err) continue } fmt.Printf("Received from %s:%d : %s ", addr.IP.String(), addr.Port, string(data[:n])) reply := []byte("Hello from UDP server") conn.WriteToUDP(reply, addr) } }
- Menulis program klien UDP
Dalam program klien UDP, anda perlu membuat Alamat UDP, iaitu, gunakan kaedah ResolveUDPAddr dalam pakej bersih Kaedah ini menerima dua parameter, iaitu jenis protokol dan alamat pelayan.
Kemudian, gunakan kaedah DialUDP untuk menyambung ke alamat pelayan, yang akan mengembalikan objek UDPConn, yang boleh digunakan untuk menghantar datagram UDP ke pelayan.
Langkah seterusnya ialah menghantar datagram ke pelayan Gunakan kaedah Tulis objek UDPConn untuk menghantar datagram ke pelayan.
Kemudian, gunakan kaedah ReadFromUDP objek UDPConn untuk membaca datagram tindak balas daripada pelayan Kaedah ini akan menyekat sehingga datagram diterima dan mengembalikan objek ralat dan objek datagram. Selepas membaca data, anda boleh mengeluarkan data.
Berikut ialah program klien UDP yang mudah:
package main import ( "fmt" "net" ) func main() { ip := net.ParseIP("127.0.0.1") addr := &net.UDPAddr{ IP: ip, Port: 8080, } conn, err := net.DialUDP("udp", nil, addr) if err != nil { fmt.Println(err) return } defer conn.Close() fmt.Printf("UDP client connected to %s:%d ", addr.IP.String(), addr.Port) message := []byte("Hello from UDP client") _, err = conn.Write(message) if err != nil { fmt.Println(err) return } buffer := make([]byte, 1024) n, _, err := conn.ReadFromUDP(buffer) if err != nil { fmt.Println(err) return } fmt.Printf("Response from server: %s ", string(buffer[:n])) }
- Ringkasan
Dalam bahasa Go, pengaturcaraan dengan UDP adalah sangat mudah, hanya gunakan The UDPConn objek dalam pakej bersih boleh membaca dan menulis datagram UDP. Artikel ini memperkenalkan cara menulis program pelayan UDP dan program klien UDP, dan menyediakan contoh kod yang sepadan. Apabila anda perlu menjalankan penghantaran data masa nyata, permainan dan aplikasi lain, anda boleh mempertimbangkan untuk menggunakan protokol UDP.
Atas ialah kandungan terperinci Bagaimana untuk memprogram menggunakan UDP dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Mengenai masalah tag struktur tersuai di Goland apabila menggunakan Goland untuk pembangunan bahasa Go, anda sering menghadapi beberapa masalah konfigurasi. Salah satu daripada mereka adalah ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Analisis kebocoran ingatan yang disebabkan oleh bait.

Strategi Pengoptimuman Prestasi untuk GO Language URL Access Massive Artikel ini mencadangkan penyelesaian pengoptimuman prestasi untuk masalah menggunakan bahasa Go untuk memproses akses URL secara besar -besaran. Program sedia ada dari CSV ...

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...
