golang udp服务端客户端例子

前端之家收集整理的这篇文章主要介绍了golang udp服务端客户端例子前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

golang udp服务端客户端例子

服务端:

package main

import (
    "fmt"
    "net"
)

func main() {
    // 创建监听
    socket,err := net.ListenUDP("udp4",&net.UDPAddr{
        IP:   net.IPv4(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),})
    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,err := socket.ReadFromUDP(data)
    if err != nil {
        fmt.Println("读取数据失败!",err)
        return
    }
    fmt.Println(read,remoteAddr)
    fmt.Printf("%s\n",data)
}

猜你在找的Go相关文章