`
hnus
  • 浏览: 29327 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

golang udp服务端客户端例子

 
阅读更多

golang 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)
}

分享到:
评论

相关推荐

    gortsplib:用于Go编程语言的RTSP 1.0客户端和服务器库

    使用UDP或TCP从客户端读取流 使用UDP或TCP将流发送到客户端 使用TLS(RTSPS)加密流 一般的 RTCP报告是自动生成的 编码和解码RTSP原语,RTP / H264,RTP / AAC,SDP 目录 例子 API文档 链接 相关项目 (内部使用的...

    go-sip-ua:前往clientb2bua的SIP UA库

    Go-Sip-UA 使用golang的client / b2bua的SIP UA库特征 传输UDP / TCP / TLS / WS / WSS。 简单的纯Go SIP客户端。 简单的纯Go B2BUA,支持RFC8599,Google FCM / Apple PushKit。 RTP中继(UDP <-> UDP,WebRTC /...

    gnet-examples:gnet的例子

    【gnet-examples】是基于Golang语言的网络库gnet的一个示例集合,它旨在帮助开发者更好地理解和使用gnet库。gnet是由阿里云开发的一款高性能、异步事件驱动的网络框架,适用于构建TCP、UDP和Unix Socket服务器。这个...

    gogonet:用于 golang 的 GoDot 高级网络

    2. **网络套接字**:GoDot可能封装了TCP、UDP等网络协议的套接字操作,提供了简单易用的接口来创建服务器和客户端,使得开发者无需关注复杂的socket API。 3. **错误处理**:在Go语言中,错误处理是非常重要的部分...

    golang_collection

    6. **网络编程**:Go语言的net包提供了丰富的网络编程功能,包括TCP、UDP、HTTP等协议的客户端和服务端实现。项目可能包含Web服务器的搭建、HTTP请求处理等示例。 7. **包管理与依赖**:Go的模块系统使得项目依赖...

    GO_PROGRAMMING_BLUEPRINTS_SECOND_EDITION

    8. **网络编程**:Go语言在网络编程方面表现出色,可以用于构建TCP、UDP等协议的客户端和服务端。 9. **微服务架构**:Go语言因其轻量级和并发性能,常被用于构建微服务。书中可能会探讨如何设计和实现微服务,以及...

Global site tag (gtag.js) - Google Analytics