第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang編寫的UDP-Client無法接收到來自服務(wù)器的消息

Golang編寫的UDP-Client無法接收到來自服務(wù)器的消息

Go
一只萌萌小番薯 2021-12-20 14:45:31
我寫了一個Java Client,它向廣播地址發(fā)送消息。我還編寫了一個 Java Server,它接受所有發(fā)送的消息并將消息發(fā)送回客戶端。現(xiàn)在我想嘗試在 Go 中做完全相同的事情,只是為了獲得一些經(jīng)驗。服務(wù)器工作正常,正在接收消息并響應(yīng) Java 客戶端。但是我的 Go Client 只向 Go/Java 服務(wù)器發(fā)送消息,但沒有收到任何消息。根據(jù)wireshark的說法,消息被發(fā)送回正確的IP和端口,但顯然該端口無法訪問。我的代碼如下:轉(zhuǎn)到服務(wù)器:package mainimport (    "fmt"    "log"    "net")func main() {    //Resolving address    udpAddr, err := net.ResolveUDPAddr("udp4", "0.0.0.0:8888")    if err != nil {        log.Println("Error: ", err)    }    // Build listining connections    conn, err := net.ListenUDP("udp", udpAddr)    defer conn.Close()    if err != nil {        log.Println("Error: ", err)    }    // Interacting with one client at a time    for {        fmt.Println(">>>Ready to receive broadcast packets!")        // Receiving a message        recvBuff := make([]byte, 15000)        _, rmAddr, err := conn.ReadFromUDP(recvBuff)        if err != nil {            panic(err)        }        fmt.Println(">>>Discovery packet received from: " + rmAddr.String())        fmt.Println(">>>Packet received; data: " + string(recvBuff))        // Sending the same message back to current client        conn.WriteToUDP(recvBuff, rmAddr)        fmt.Println(">>>Sent packet to: " + rmAddr.String())} }
查看完整描述

2 回答

?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗 獲得超9個贊

即使您只打算從連接發(fā)送 UDP 數(shù)據(jù)包,您通常也希望ListenUDP使用ReadFromUDPWriteToUDP方法來創(chuàng)建連接。

當(dāng)您使用 時DialUDP,它會創(chuàng)建一個“連接的”UDP 套接字,帶有一個隱式遠(yuǎn)程端點,它將過濾傳入的數(shù)據(jù)包。從 Linuxconnect手冊頁:

如果套接字 sockfd 是 SOCK_DGRAM 類型,則 addr 是默認(rèn)發(fā)送數(shù)據(jù)報的地址,也是接收數(shù)據(jù)報的唯一地址。


查看完整回答
反對 回復(fù) 2021-12-20
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊

如果您不忽略從 WriteToUDP 返回的錯誤,它實際上會給您一個錯誤:“sendto: message to long”

在 OSX 上,最大 UDP 數(shù)據(jù)報大小默認(rèn)設(shè)置為 9216 字節(jié)。您嘗試發(fā)送 15000 個字節(jié)。

如果你只是想寫回你收到的東西,那么寫

recvBuff[:n]

,其中 n 是之前接收的字節(jié)數(shù)。


查看完整回答
反對 回復(fù) 2021-12-20
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號