Penyelidikan tentang senario aplikasi Golang dalam pengaturcaraan rangkaian
Pengenalan: Dengan perkembangan Internet, pengaturcaraan rangkaian menjadi semakin penting. Golang, sebagai bahasa pengaturcaraan baharu, telah menarik banyak perhatian kerana ciri keselarasannya dan kompilasi pantas. Artikel ini akan mengkaji senario aplikasi Golang dalam pengaturcaraan rangkaian dan menyediakan contoh kod khusus.
1. Keperluan biasa dalam pengaturcaraan rangkaian
Keperluan biasa dalam pengaturcaraan rangkaian termasuk tetapi tidak terhad kepada aspek berikut:
package main import ( "fmt" "net" ) func handleConn(conn net.Conn) { data := make([]byte, 1024) n, err := conn.Read(data) if err != nil { fmt.Println("读取数据失败:", err) return } fmt.Println("接收到数据:", string(data[:n])) conn.Write([]byte("已收到数据")) conn.Close() } func main() { listener, err := net.Listen("tcp", "localhost:8888") if err != nil { fmt.Println("监听失败:", err) return } fmt.Println("正在监听...") for { conn, err := listener.Accept() if err != nil { fmt.Println("接收连接失败:", err) continue } go handleConn(conn) } }
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://www.example.com") if err != nil { fmt.Println("发送请求失败:", err) return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("读取响应失败:", err) return } fmt.Println("响应内容:", string(body)) }
Melaksanakan pengaturcaraan WebSocket
WebSocket pengaturcaraan boleh dilaksanakan dengan mudah menggunakan Golang. Berikut ialah kod contoh pelayan WebSocket yang mudah:package main import ( "fmt" "log" "net/http" "github.com/gorilla/websocket" ) var upgrader = websocket.Upgrader{} func echo(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println("Upgrade失败:", err) return } defer conn.Close() for { messageType, message, err := conn.ReadMessage() if err != nil { log.Println("读取消息失败:", err) return } log.Println("接收到消息:", string(message)) if err := conn.WriteMessage(messageType, message); err != nil { log.Println("发送消息失败:", err) return } } } func main() { http.HandleFunc("/ws", echo) log.Fatal(http.ListenAndServe("localhost:8080", nil)) }
Atas ialah kandungan terperinci Terokai aplikasi praktikal Golang dalam pengaturcaraan rangkaian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!