欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang實現(xiàn)簡單的udp協(xié)議服務端與客戶端示例

 更新時間:2016年07月22日 10:42:35   作者:dotcoo  
這篇文章主要介紹了golang實現(xiàn)簡單的udp協(xié)議服務端與客戶端,結合實例形式分析了基于UDP協(xié)議的數(shù)據(jù)傳輸相關實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了golang實現(xiàn)簡單的udp協(xié)議服務端與客戶端。分享給大家供大家參考,具體如下:

其實udp沒有什么服務端和客戶端的概念了,只是一個發(fā)一個收而已,只是這樣較方便能識別和理解.

服務端:

復制代碼 代碼如下:
package main
import (
    "fmt"
    "net"
)
func main() {
    // 創(chuàng)建監(jiān)聽
    socket, err := net.ListenUDP("udp4", &net.UDPAddr{
        IP:   net.IPv4(0, 0, 0, 0),
        Port: 8080,
    })
    if err != nil {
        fmt.Println("監(jiān)聽失敗!", err)
        return
    }
    defer socket.Close()
    for {
        // 讀取數(shù)據(jù)
        data := make([]byte, 4096)
        read, remoteAddr, err := socket.ReadFromUDP(data)
        if err != nil {
            fmt.Println("讀取數(shù)據(jù)失敗!", err)
            continue
        }
        fmt.Println(read, remoteAddr)
        fmt.Printf("%s\n\n", data)
        // 發(fā)送數(shù)據(jù)
        senddata := []byte("hello client!")
        _, err = socket.WriteToUDP(senddata, remoteAddr)
        if err != nil {
            return
            fmt.Println("發(fā)送數(shù)據(jù)失敗!", err)
        }
    }
}

客戶端:

復制代碼 代碼如下:
package main
import (
    "fmt"
    "net"
)
func main() {
    // 創(chuàng)建連接
    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()
    // 發(fā)送數(shù)據(jù)
    senddata := []byte("hello server!")
    _, err = socket.Write(senddata)
    if err != nil {
        fmt.Println("發(fā)送數(shù)據(jù)失敗!", err)
        return
    }
    // 接收數(shù)據(jù)
    data := make([]byte, 4096)
    read, remoteAddr, err := socket.ReadFromUDP(data)
    if err != nil {
        fmt.Println("讀取數(shù)據(jù)失敗!", err)
        return
    }
    fmt.Println(read, remoteAddr)
    fmt.Printf("%s\n", data)
}

希望本文所述對大家Go語言程序設計有所幫助。

相關文章

  • 如何利用Go語言實現(xiàn)LRU?Cache

    如何利用Go語言實現(xiàn)LRU?Cache

    這篇文章主要介紹了如何利用Go語言實現(xiàn)LRU?Cache,LRU是Least?Recently?Used的縮寫,是一種操作系統(tǒng)中常用的頁面置換算法,下面我們一起進入文章了解更多內(nèi)容吧,需要的朋友可以參考一下
    2022-03-03
  • go語言中反射機制的三種使用場景

    go語言中反射機制的三種使用場景

    本文主要介紹了go語言中反射機制的三種使用場景,包括JSON解析、ORM框架和接口適配,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • Go 語言中的 Struct Tag 的用法詳解

    Go 語言中的 Struct Tag 的用法詳解

    在 Go 語言中,結構體字段標簽(Struct Tag) 是一種用于給字段添加元信息(metadata)的機制,常用于序列化(如 JSON、XML)、ORM 映射、驗證等場景,本文給大家介紹Go 語言中的 Struct Tag 的用法,感興趣的朋友一起看看吧
    2025-05-05
  • Go 中 slice 的 In 功能實現(xiàn)探索

    Go 中 slice 的 In 功能實現(xiàn)探索

    這篇文章主要介紹了Go 中 slice 的 In 功能實現(xiàn)探索,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • goland設置顏色和字體的操作

    goland設置顏色和字體的操作

    這篇文章主要介紹了goland設置顏色和字體的操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go操作Kafka和Etcd方法詳解

    Go操作Kafka和Etcd方法詳解

    這篇文章主要為大家介紹了Go操作Kafka和Etcd方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Golang中Map按照Value大小排序的方法實例

    Golang中Map按照Value大小排序的方法實例

    這篇文章主要給大家介紹了關于Golang中Map按照Value大小排序的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • Golang實現(xiàn)簡易的rpc調(diào)用

    Golang實現(xiàn)簡易的rpc調(diào)用

    RPC指(Remote Procedure Call Protocol)遠程過程調(diào)用協(xié)議。本文將實現(xiàn)利用Golang進行rpc調(diào)用(只實現(xiàn)一個rpc框架基本的功能,不對性能做保證),需要的可以參考一下
    2023-03-03
  • go語言的panic和recover函數(shù)用法實例

    go語言的panic和recover函數(shù)用法實例

    今天小編就為大家分享一篇關于go語言的panic和recover函數(shù)用法實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Go語言線程安全之互斥鎖與讀寫鎖

    Go語言線程安全之互斥鎖與讀寫鎖

    這篇文章主要介紹了Go語言線程安全之互斥鎖與讀寫鎖,互斥鎖是為了并發(fā)的安全,在多個goroutine共同工作的時候,對于共享的數(shù)據(jù)十分不安全,而讀寫鎖效率革命,使用鎖的時候,安全與效率往往需要互相轉換,下文詳細內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02

最新評論