欢迎来到代码驿站!

Golang

当前位置:首页 > 脚本语言 > Golang

golang实现简单的udp协议服务端与客户端示例

时间:2020-10-09 13:10:39|栏目:Golang|点击:

本文实例讲述了golang实现简单的udp协议服务端与客户端。分享给大家供大家参考,具体如下:

其实udp没有什么服务端和客户端的概念了,只是一个发一个收而已,只是这样较方便能识别和理解.

服务端:

复制代码 代码如下:
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)
}

希望本文所述对大家Go语言程序设计有所帮助。

上一篇:Go语言中常量定义方法实例分析

栏    目:Golang

下一篇:Golang中文字符串截取函数实现原理

本文标题:golang实现简单的udp协议服务端与客户端示例

本文地址:http://www.codeinn.net/misctech/8915.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有