在Go語言中,可以使用net包來實(shí)現(xiàn)網(wǎng)絡(luò)編程。以下是一個(gè)簡單的示例代碼,該代碼使用Go語言在Linux系統(tǒng)上實(shí)現(xiàn)了一個(gè)簡單的TCP服務(wù)器:
package main
import (
"fmt"
"net"
)
func main() {
// 創(chuàng)建TCP監(jiān)聽器
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) {
// 讀取客戶端數(shù)據(jù)
buffer := make([]byte, 1024)
_, err := conn.Read(buffer)
if err != nil {
fmt.Println("Error reading:", err.Error())
return
}
// 打印客戶端發(fā)送的數(shù)據(jù)
fmt.Println("Received message:", string(buffer))
// 向客戶端發(fā)送響應(yīng)數(shù)據(jù)
conn.Write([]byte("Hello from server"))
// 關(guān)閉連接
conn.Close()
}
在這個(gè)示例中,我們創(chuàng)建了一個(gè)TCP服務(wù)器,監(jiān)聽在本地的8080端口。當(dāng)有客戶端連接時(shí),我們會接受客戶端連接,并在一個(gè)新的goroutine中處理客戶端請求。在handleRequest函數(shù)中,我們讀取客戶端發(fā)送的數(shù)據(jù)并向客戶端發(fā)送響應(yīng)數(shù)據(jù)。
要運(yùn)行這個(gè)示例程序,可以使用以下命令:
go run server.go
在另一個(gè)終端中,可以使用telnet工具連接到服務(wù)器:
telnet localhost 8080
然后在telnet客戶端中輸入一些數(shù)據(jù),就可以看到服務(wù)器接收到了數(shù)據(jù)并發(fā)送了響應(yīng)。這就是一個(gè)簡單的網(wǎng)絡(luò)編程示例,展示了如何在Go語言中實(shí)現(xiàn)網(wǎng)絡(luò)編程。