Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menetapkan soket dalam golang

Bagaimana untuk menetapkan soket dalam golang

PHPz
PHPzasal
2023-04-13 09:04:581058semak imbas

Bahasa Go ialah bahasa pengaturcaraan yang sangat berkuasa, terutamanya sesuai untuk membina aplikasi rangkaian konkurensi tinggi. Jika anda menulis aplikasi rangkaian dalam Go, anda perlu tahu cara menyediakan soket. Artikel ini akan memperkenalkan cara menyediakan soket dalam bahasa Go.

Sebelum melakukan sebarang pengaturcaraan rangkaian, kita perlu mengetahui beberapa konsep asas. Yang pertama ialah soket, iaitu antara muka rangkaian peringkat sistem yang digunakan untuk menghantar dan menerima data pada rangkaian. Malah, soket adalah kunci kepada komunikasi rangkaian.

Dalam bahasa Go, kita boleh menggunakan pakej "net" untuk menyediakan soket. Di bawah ialah beberapa coretan kod asas untuk membantu kami memahami cara menyediakan soket dalam bahasa Go.

import (
    "net"
    "os"
)

func main() {
    conn, err := net.Dial("tcp", "google.com:80")
    if err != nil {
        println("Connection error: ", err.Error())
        os.Exit(1)
    }
    defer conn.Close()
}

Dalam contoh mudah ini, kami menggunakan fungsi Dail untuk menyambung ke port HTTP pelayan Google (80). Dalam contoh ini, kami menyediakan sambungan TCP dan menggunakan "google.com:80" sebagai alamat destinasi. Jika sambungan gagal, kami mencetak ralat dan keluar dari program.

Jadi bagaimana untuk menyesuaikan pilihan soket dalam bahasa Go? Kita perlu menggunakan beberapa fungsi lain pakej "bersih". Berikut ialah contoh lebih lanjut yang menunjukkan cara untuk menetapkan pilihan tamat masa:

import (
    "io/ioutil"
    "net"
    "os"
    "time"
)

func main() {
    conn, err := net.DialTimeout("tcp", "google.com:80", time.Second*5)
    if err != nil {
        println("Connection error: ", err.Error())
        os.Exit(1)
    }
    defer conn.Close()

    conn.SetDeadline(time.Now().Add(time.Second * 10))

    req := "GET / HTTP/1.0\r\nHost: google.com\r\n\r\n"
    conn.Write([]byte(req))

    resp, err := ioutil.ReadAll(conn)
    if err != nil {
        println("Read error: ", err.Error())
        os.Exit(1)
    }

    println("Response: ", string(resp))
}

Dalam contoh ini, kami mula-mula membuat sambungan TCP dan menetapkan tamat masa selama 5 saat. Kami kemudian menetapkan tarikh akhir 10 saat menggunakan SetDeadline dan menghantar permintaan HTTP GET yang mudah. Akhirnya, kami membaca respons daripada sambungan dan mencetaknya ke konsol.

Dua contoh di atas menggambarkan bahawa bahasa Go menyediakan beberapa fungsi yang sangat mudah untuk menetapkan pilihan soket rangkaian. Jika anda seorang pembangun Go, amat membantu anda memahami cara menggunakan soket.

Ringkasan:

Dalam artikel ini, kami mempelajari cara menyediakan soket dalam bahasa Go. Kami belajar cara menggunakan pakej "bersih" dan fungsi berkaitan untuk mencipta dan menyesuaikan pilihan soket. Jika anda menulis aplikasi web dalam Go, teknik dalam artikel ini akan sangat membantu anda. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Bagaimana untuk menetapkan soket dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Golang tak pandai buat apa?Artikel seterusnya:Golang tak pandai buat apa?