主頁(yè) > 知識(shí)庫(kù) > golang實(shí)現(xiàn)簡(jiǎn)單的udp協(xié)議服務(wù)端與客戶端示例

golang實(shí)現(xiàn)簡(jiǎn)單的udp協(xié)議服務(wù)端與客戶端示例

熱門標(biāo)簽:百度地圖標(biāo)注搜索關(guān)鍵詞 浙江人工智能外呼管理系統(tǒng) 騰訊外呼系統(tǒng)價(jià)格 成都呼叫中心外呼系統(tǒng)平臺(tái) 電銷機(jī)器人可以補(bǔ)救房產(chǎn)中介嗎 電梯外呼訪客系統(tǒng) 最短的地圖標(biāo)注 ?兓? 谷歌便利店地圖標(biāo)注

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

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

服務(wù)端:

復(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)
        }
    }
}

客戶端:

復(fù)制代碼 代碼如下:
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)
}

希望本文所述對(duì)大家Go語(yǔ)言程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • Golang實(shí)現(xiàn)的聊天程序服務(wù)端和客戶端代碼分享
  • 詳解golang consul-grpc 服務(wù)注冊(cè)與發(fā)現(xiàn)
  • 詳解如何熱重啟golang服務(wù)器
  • golang搭建靜態(tài)web服務(wù)器的實(shí)現(xiàn)方法
  • golang websocket 服務(wù)端的實(shí)現(xiàn)
  • 詳解prometheus監(jiān)控golang服務(wù)實(shí)踐記錄

標(biāo)簽:雅安 上海 盤錦 邢臺(tái) 眉山 紹興 宜昌 七臺(tái)河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang實(shí)現(xiàn)簡(jiǎn)單的udp協(xié)議服務(wù)端與客戶端示例》,本文關(guān)鍵詞  golang,實(shí)現(xiàn),簡(jiǎn)單,的,udp,協(xié)議,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang實(shí)現(xiàn)簡(jiǎn)單的udp協(xié)議服務(wù)端與客戶端示例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于golang實(shí)現(xiàn)簡(jiǎn)單的udp協(xié)議服務(wù)端與客戶端示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章