服务端:
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)
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Golang(Go语言)构建UDP服务器和客户端。Go语言以其简洁、高效和并发特性,常被用于网络编程,包括UDP通信。UDP(用户数据报协议)是一种无连接的传输层协议,适用于需要快速发送...
GB28181是中国国家公共安全视频监控网络系统联网通信协议标准,它定义了服务端和客户端之间的数据传输、控制、管理和互操作规范。在这个项目中,开发者使用了Go语言来实现GB28181协议的两端——服务端和客户端。Go...
集成各种获取方式,获取正确的IP
### Golang 实现简单的 UDP 协议服务端与客户端示例 #### 一、引言 在本篇文章中,我们将详细介绍如何使用 Go 语言(Golang)来开发一个基于 UDP 协议的服务端和客户端应用。UDP(User Datagram Protocol)是一种无...
戈雷迪斯golang 中的 redis 客户端Go 或 Golang是一种开源编程语言,可以轻松构建简单、可靠、高效的软件。Redis是一个开源的、BSD 许可的高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串、哈希、...
在IT行业中,网络通信是至关重要的一个环节,而Golang作为一种强大的系统编程语言,提供了对多种网络协议的支持,包括我们今天要讨论的UDP(User Datagram Protocol)。标题中的“golang udp.rar”暗示了我们将深入...
SSE是Golang服务器发送事件的客户端/服务器实现。 建置状态 掌握: 注意:现在,所有活动开发都在v2分支上进行。 快速开始 要安装版本2: go get github.com/r3labs/sse/v2 去测试: $ make deps $ make test ...
go-wordpress, Golang API的客户端库( Wordpress REST API ) go-wp-apiGolang api的客户端库( Wordpress REST API )安装go get github.com/sogko/go-wordpress用法快速示例package main
本文实例讲述了golang实现的文件上传与文件下载功能。分享给大家供大家参考,具体如下: upload.go 复制代码 代码如下:package common import ( “io/ioutil” “os” “path” “github.com/gin-gonic/gin...
使用责任链、反射、gin框架等技术实现的restful风格的Golang游戏服务端,里面包含了一系列功能。包括接收客户端的请求,并调用相关的业务代码。业务职责清晰,分层明显,是开发游戏服务端的不二选择。
1、该资源针是用golang语言写成,分为两部分:服务器端和客户端,进行连接即时通讯 2、golang语言基础,易于理解,新手可以作为参考学习 3、功能包含: 登录、注册、登录通知、点对点通讯、群聊通讯、在线通知、...
【go语言】golang钉钉机器人客户端支持文本、链接、Markdown、ActionCard、FeedCard类型消息的发送
Minio是GlusterFS创始人之一Anand Babu Periasamy发布新的开源项目。Minio兼容Amason的S3分布式对象存储项目,采用Golang实现,客户端支持Java,Python,Javacript, Golang语言
【go语言】golang钉钉机器人客户端支持文本、链接、Markdown、ActionCard、FeedCard类型消息的发送_pgj
创建一个websocket的服务端 package smile import ( errors log net/http sync time github.com/gorilla/websocket ) const ( // 允许等待的写入时间 writeWait = 10 * time.Second // Time allowed to ...
通过上述介绍可以看出,Go 语言不仅在服务端开发领域有着广泛的应用,在移动客户端开发领域也同样具备巨大的潜力。利用 Go Mobile 工具链,开发者可以轻松地使用 Go 语言开发出高性能且跨平台的移动应用。此外,Go ...
最近在学习Golang语言,中间遇到一个前辈指点,有一个学习原则:Learning By Doing。跟我之前学习Java的经验高度契合。在前一段时间学习洼坑中挣扎了好几天,差点就忘记这个重要的成功经验。 那么那什么来做练习呢...
用 golang 编写的小型简单 UDP syslog 服务器,旨在以漂亮明亮的彩色方式显示日志消息。 免责声明 这是目前非常早期的版本,一切都可以而且将会改变。 执照 版权所有 (c) 2014 Mark Wolfe 根据 MIT 许可获得许可。
在本压缩包“Golang_Gognet的例子.zip”中,主要包含的是关于Golang语言使用Gognet库的示例代码。Gognet是一个高性能、异步、事件驱动的网络库,专为Go语言设计,旨在帮助开发者构建高效、可扩展的网络应用,如...