亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么我的 UDP 撥號器也沒有監聽?

為什么我的 UDP 撥號器也沒有監聽?

Go
MMTTMM 2021-09-09 13:43:03
我有兩個程序,一個監聽器和一個撥號器。我想要在同一個端口上進行雙向 UDP 通信。我的監聽器按預期讀取從撥號器發送的數據報,然后發回自己的 5 個數據報。唯一的問題是,我的撥號器沒有讀取它。我嘗試使用 net.DialUDP 但當我使用它時,從撥號器發送了 0 個數據報。聽眾 - 效果很好func main() {addr := net.UDPAddr{    Port: 7000,    IP:   net.ParseIP("127.0.0.1"),}conn, err := net.ListenUDP("udp", &addr)defer conn.Close()if err != nil {    panic(err)}i := 0b := make([]byte, 10)conn.ReadFromUDP(b)fmt.Println(string(b[:]))for i < 5 {    conn.WriteToUDP([]byte("sending back"), &addr)    i++}}發送數據報但無法讀取它們的撥號程序func main() {sock, _ := net.Dial("udp", "127.0.0.1:7000")buf := make([]byte, 100)_, werr := sock.Write([]byte("first send"))if werr != nil {    fmt.Println(werr)}sock.Read(buf)fmt.Println(string(buf[:]))}不發送任何數據報的撥號程序func main() {remote, _ := net.ResolveUDPAddr("udp", "127.0.0.1:7000")sock, _ := net.DialUDP("udp", nil, remote)buf := make([]byte, 10)for {    sock.WriteToUDP([]byte("first send"), remote)    sock.ReadFromUDP(buf)    fmt.Println(string(buf[:]))}}
查看完整描述

1 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

如有疑問,只需使用 ListenUDP。它將發送和接收數據報。

sock, _ := net.Dial("udp", "127.0.0.1:7000")

這將創建一個net.Conn,它只是一個基本的連接接口。您必須將其聲明為 a*net.UDPConn才能使實際UDP方法起作用。

sock, _ := net.DialUDP("udp", nil, remote)

這將創建一個“已連接”的 UDP 套接字,并使用裸Write方法發送到單個遠程地址。


查看完整回答
反對 回復 2021-09-09
  • 1 回答
  • 0 關注
  • 232 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號