服务端:
package main
import (
"fmt"
"net"
)
func main() {
// 创建监听
socket, err := net.ListenUDP("udp4", &net.UDPAddr{
IP: net.IPv4(0, 0, 0, 0),
Port: 8080,
})
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)
}
}
}
客户端:
package main
import (
"fmt"
"net"
)
func main() {
// 创建连接
socket, err := net.DialUDP("udp4", nil, &net.UDPAddr{
IP: net.IPv4(192, 168, 1, 103),
Port: 8080,
})
if err != nil {
fmt.Println("连接失败!", err)
return
}
defer socket.Close()
// 发送数据
senddata := []byte("hello server!")
_, err = socket.Write(senddata)
if err != nil {
fmt.Println("发送数据失败!", err)
return
}
// 接收数据
data := make([]byte, 4096)
read, remoteAddr, err := socket.ReadFromUDP(data)
if err != nil {
fmt.Println("读取数据失败!", err)
return
}
fmt.Println(read, remoteAddr)
fmt.Printf("%s\n", data)
}
分享到:
相关推荐
使用UDP或TCP从客户端读取流 使用UDP或TCP将流发送到客户端 使用TLS(RTSPS)加密流 一般的 RTCP报告是自动生成的 编码和解码RTSP原语,RTP / H264,RTP / AAC,SDP 目录 例子 API文档 链接 相关项目 (内部使用的...
Go-Sip-UA 使用golang的client / b2bua的SIP UA库特征 传输UDP / TCP / TLS / WS / WSS。 简单的纯Go SIP客户端。 简单的纯Go B2BUA,支持RFC8599,Google FCM / Apple PushKit。 RTP中继(UDP <-> UDP,WebRTC /...
【gnet-examples】是基于Golang语言的网络库gnet的一个示例集合,它旨在帮助开发者更好地理解和使用gnet库。gnet是由阿里云开发的一款高性能、异步事件驱动的网络框架,适用于构建TCP、UDP和Unix Socket服务器。这个...
2. **网络套接字**:GoDot可能封装了TCP、UDP等网络协议的套接字操作,提供了简单易用的接口来创建服务器和客户端,使得开发者无需关注复杂的socket API。 3. **错误处理**:在Go语言中,错误处理是非常重要的部分...
6. **网络编程**:Go语言的net包提供了丰富的网络编程功能,包括TCP、UDP、HTTP等协议的客户端和服务端实现。项目可能包含Web服务器的搭建、HTTP请求处理等示例。 7. **包管理与依赖**:Go的模块系统使得项目依赖...
8. **网络编程**:Go语言在网络编程方面表现出色,可以用于构建TCP、UDP等协议的客户端和服务端。 9. **微服务架构**:Go语言因其轻量级和并发性能,常被用于构建微服务。书中可能会探讨如何设计和实现微服务,以及...