1. udp server

package main

import (
"fmt"
"net"
) func main() { // udp server
listenUdp, err := net.ListenUDP("udp", &net.UDPAddr{
IP: net.IPv4(127,0,0,1),
Port: 8080,
})
if err != nil {
fmt.Println("ListenPacket fail err", err)
return
}
defer listenUdp.Close() for {
// 接收数据
var buf [1024]byte
n, addr, err := listenUdp.ReadFromUDP(buf[:])
if err != nil {
fmt.Println("ReadFromUDP fail err", err)
continue
}
fmt.Printf("接收到客户端【%v】的数据:%s\n", addr, string(buf[:n])) // 发送数据
msg := "server发送回来的数据" + string(buf[:n])
num, err := listenUdp.WriteToUDP([]byte(msg), addr)
if err != nil {
fmt.Println("WriteToUDP fail err", num, err)
continue
} } }

  

2. udp client

package main

import (
"fmt"
"net"
"strings"
) func main() {
// udp client
udpConn, err := net.DialUDP("udp", nil, &net.UDPAddr{
IP: net.IPv4(127,0,0,1),
Port: 8080,
})
if err != nil {
fmt.Println("DialUDP fail err", err)
return
} defer udpConn.Close() for {
// 发送数据
var data string
fmt.Print("请输入要发送给服务器的数据:")
fmt.Scanln(&data)
if strings.ToUpper(data) == "Q" {
break
}
sendData := []byte(data)
_, err = udpConn.Write(sendData)
if err != nil {
fmt.Println("udp客户端Write fail err", err)
return
} // 接收数据
buf := make([]byte, 4096)
n, remoteAddr, err2 := udpConn.ReadFromUDP(buf[:])
if err2 != nil {
fmt.Println("udp客户端Read fail err", err2)
return
}
fmt.Printf("data:%v, addr:%v\n", string(buf[:n]), remoteAddr) }
}

  

最新文章

  1. toroiseSVN 无法连接服务器,提示unable connect to ……url 参数错误
  2. AMD and CMD are dead之KMD规范
  3. 如何开发H5项目 -- 入门篇
  4. webService----wsimport调用方式
  5. nginx源码安装
  6. C语言指针类型 强制转换
  7. nginx实现负载均衡
  8. ZYSocket 4.3.5 SOCKET框架组 发布[NEW]
  9. flexbox 弹性盒子
  10. Scrapyd日志输出优化
  11. Javascript - ExtJs - 常用方法和属性
  12. 自定义spring参数注解 - 打破@RequestBody单体限制
  13. python语法_使用占位符进行格式化输出
  14. 【BZOJ1786】[Ahoi2008]Pair 配对
  15. nginx处理问题笔记
  16. 【WinRT】多语言化应用程序名称
  17. IDEA 项目相关基础设置
  18. jmeter 常用内置变量
  19. 【leetcode 简单】 第一百零七题 回旋镖的数量
  20. day 11 大文件操作

热门文章

  1. JAVA中价格金额的存储类型
  2. 惊!世界上竟然有O(N)时间复杂度的排序算法!计数排序!
  3. 【LeetCode】358. Rearrange String k Distance Apart 解题报告(Python)
  4. 【LeetCode】227. Basic Calculator II 解题报告(Python)
  5. Go语言核心36讲(新年彩蛋)--学习笔记
  6. 终于做了一把MySQL调参boy
  7. [opencv]Rect集合象限法分类聚合 函数
  8. CS5213demoboard设计电路|DMI转VGA带II2S音频输出转接线|CS5213方案
  9. Flink sql 之 微批处理与MiniBatchIntervalInferRule (源码分析)
  10. 使用 JavaScript 根据消费金额和消费者是否为会员确定折扣,最终核算实际应该支付的金额