溫馨提示×

golang linux如何實現網絡編程

小樊
102
2024-07-05 23:05:37
欄目: 編程語言

在Go語言中,可以使用net包來實現網絡編程。以下是一個簡單的示例代碼,該代碼使用Go語言在Linux系統上實現了一個簡單的TCP服務器:

package main

import (
	"fmt"
	"net"
)

func main() {
	// 創建TCP監聽器
	listener, err := net.Listen("tcp", "0.0.0.0:8080")
	if err != nil {
		fmt.Println("Error listening:", err.Error())
		return
	}
	defer listener.Close()

	fmt.Println("Server listening on 0.0.0.0:8080")

	for {
		// 接受客戶端連接
		conn, err := listener.Accept()
		if err != nil {
			fmt.Println("Error accepting: ", err.Error())
			return
		}

		// 處理客戶端請求
		go handleRequest(conn)
	}
}

func handleRequest(conn net.Conn) {
	// 讀取客戶端數據
	buffer := make([]byte, 1024)
	_, err := conn.Read(buffer)
	if err != nil {
		fmt.Println("Error reading:", err.Error())
		return
	}

	// 打印客戶端發送的數據
	fmt.Println("Received message:", string(buffer))

	// 向客戶端發送響應數據
	conn.Write([]byte("Hello from server"))

	// 關閉連接
	conn.Close()
}

在這個示例中,我們創建了一個TCP服務器,監聽在本地的8080端口。當有客戶端連接時,我們會接受客戶端連接,并在一個新的goroutine中處理客戶端請求。在handleRequest函數中,我們讀取客戶端發送的數據并向客戶端發送響應數據。

要運行這個示例程序,可以使用以下命令:

go run server.go

在另一個終端中,可以使用telnet工具連接到服務器:

telnet localhost 8080

然后在telnet客戶端中輸入一些數據,就可以看到服務器接收到了數據并發送了響應。這就是一個簡單的網絡編程示例,展示了如何在Go語言中實現網絡編程。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女