|
以下是udp server 放在980板子上
package main
import (
"fmt"
"net"
)
func main() {
// 创建监听
socket, err := net.ListenUDP("udp4", &net.UDPAddr{
IP: net.IPv4(0, 0, 0, 0),
Port: 68,
})
if err != nil {
fmt.Println("监听失败!", err)
return
}
defer socket.Close()
for {
// 读取数据
data := make([]byte, 4096)
read, remoteAddr, err := socket.ReadFromUDP(data)
if err != nil {
fmt.Println("读取数据失败!", err)
continue
}
fmt.Println(read, remoteAddr)
fmt.Printf("%s\n\n", data)
// 发送数据
senddata := []byte("hello client!")
_, err = socket.WriteToUDP(senddata, remoteAddr)
if err != nil {
return
fmt.Println("发送数据失败!", err)
}
}
}
**********************************************************************************
以下是client端 放在PC上跑
package main
import (
"fmt"
"net"
)
// 启用客户端注释掉的那段代码
func main() {
// 这里设置发送者的IP地址,自己查看一下自己的IP自行设定
laddr := net.UDPAddr{
IP: net.IPv4(10, 10, 10, 51),
Port: 6667,
}
// 这里设置接收者的IP地址为广播地址
raddr := net.UDPAddr{
IP: net.IPv4(255, 255, 255, 255),
//IP: net.IPv4(10, 10, 10, 124),
Port: 68,
}
// 创建监听
socket, err := net.ListenUDP("udp4", &laddr)
if err != nil {
fmt.Println("connect udp failure!", err)
return
}
defer socket.Close()
// 发送数据
sendBts := []byte("hello server!")
_, err = socket.WriteToUDP(sendBts, &raddr)
if err != nil {
fmt.Println("send msg failure!", err)
return
}
// 接收数据
data := make([]byte, 4096)
fmt.Println("接收数据")
read, remoteAddr, err := socket.ReadFromUDP(data)
fmt.Println("err=", err)
if err != nil {
fmt.Println("读取数据失败!", err)
return
}
fmt.Println(read, remoteAddr)
fmt.Printf("%s\n", data)
}
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|