以下是一个使用Golang建立物理层网络通信的简单示例:
package main
import (
"fmt"
"net"
)
func main() {
// 创建一个UDP连接
conn, err := net.ListenPacket("udp", ":8080")
if err != nil {
fmt.Println("Error creating connection:", err)
return
}
defer conn.Close()
buffer := make([]byte, 1024)
for {
// 读取数据
n, addr, err := conn.ReadFrom(buffer)
if err != nil {
fmt.Println("Error reading from connection:", err)
break
}
// 处理接收到的数据
data := buffer[:n]
fmt.Printf("Received data from %s: %s\n", addr.String(), string(data))
// 发送回复数据
reply := []byte("Hello, client!")
_, err = conn.WriteTo(reply, addr)
if err != nil {
fmt.Println("Error sending reply:", err)
break
}
}
}
这个示例使用net.ListenPacket
函数创建了一个UDP连接,监听本地端口8080。然后通过循环来不断读取客户端发送过来的数据,并向客户端发送回复。注意,这只是一个基础示例,实际应用中可能需要更多的错误处理和协议设计。
请根据自己的需求进行修改和扩展。
内容由零声教学AI助手提供,问题来源于学员提问