首页 > 编程语言 > 详细

UDP协议-GO语言

时间:2021-01-21 16:26:31      阅读:22      评论:0      收藏:0      [点我收藏+]
		UDP协议User Datagram Protocol(用户数据报协议)	
不需要建立连接就能直接进行数据发送和接收,属于不可靠没时序,速度快实用性好,通常用于视频直播


范例:
server服务端:开启服务器 > 不需要监听直接循环接收信息 > 转换成大写后conn.WriteToUDP()

client客户端:先建立连接 > 读取bufio.ReadString(‘\n‘)发送 > 接收返回的大写信息,Println()输出
  • 00,客户端
package main

//server服务端

import (
	"fmt"
	"net"
	"strings"
)

func main() {
	//01开启服务器
	conn, err := net.ListenUDP("udp", &net.UDPAddr{
		IP:   net.IPv4(127, 0, 0, 1),
		Port: 40000,
	})
	if err != nil {
		fmt.Println("listen UDP failed", err)
	}
	defer conn.Close()

	//02不需要建立连接,直接收发数据
	var data [1024]byte
	for {
		//循环读取数据
		n, addr, err := conn.ReadFromUDP(data[:])
		if err != nil {
			fmt.Println("read from UDF failed", err)
		}
		fmt.Println(string(data[:n]))

		//转换成大写
		reply := strings.ToUpper(string(data[:n]))

		//发送
		conn.WriteToUDP([]byte(reply), addr)
	}
}
  •   01,服务端
package main

//server服务端

import (
	"fmt"
	"net"
	"strings"
)

func main() {
	//01开启服务器
	conn, err := net.ListenUDP("udp", &net.UDPAddr{
		IP:   net.IPv4(127, 0, 0, 1),
		Port: 40000,
	})
	if err != nil {
		fmt.Println("listen UDP failed", err)
	}
	defer conn.Close()

	//02不需要建立连接,直接收发数据
	var data [1024]byte
	for {
		//循环读取数据
		n, addr, err := conn.ReadFromUDP(data[:])
		if err != nil {
			fmt.Println("read from UDF failed", err)
		}
		fmt.Println(string(data[:n]))

		//转换成大写
		reply := strings.ToUpper(string(data[:n]))

		//发送
		conn.WriteToUDP([]byte(reply), addr)
	}
}

  

UDP协议-GO语言

原文:https://www.cnblogs.com/shijieziben/p/14307666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!