Go 发送udp数据包时如何设置源端口

Go 发送udp数据包时如何设置源端口,go,Go,在客户端,我想在发送UDP数据包时设置UDP源端口。 在服务器上,我想知道在服务器上接收到的UDP源端口是什么 客户端: package main import ( "net" ) func main() { s, err := net.ResolveUDPAddr("udp4", "127.0.0.1:1234") c, err := net.DialUDP("udp4", nil, s) if err != nil { fmt.Prin

在客户端,我想在发送UDP数据包时设置UDP源端口。 在服务器上,我想知道在服务器上接收到的UDP源端口是什么

客户端:

package main

import (
    "net"
)

func main() {

    s, err := net.ResolveUDPAddr("udp4", "127.0.0.1:1234")
    c, err := net.DialUDP("udp4", nil, s)

    if err != nil {
        fmt.Println(err)
        return
    }
}
package main

import (
    "net"
    "time"
)

func main() {

    s, err := net.ResolveUDPAddr("udp4", "127.0.0.1:1234")
    if err != nil {
        fmt.Println(err)
        return
    }

    connection, err := net.ListenUDP("udp4", s)
    if err != nil {
        fmt.Println(err)
        return
    }
}
服务器:

package main

import (
    "net"
)

func main() {

    s, err := net.ResolveUDPAddr("udp4", "127.0.0.1:1234")
    c, err := net.DialUDP("udp4", nil, s)

    if err != nil {
        fmt.Println(err)
        return
    }
}
package main

import (
    "net"
    "time"
)

func main() {

    s, err := net.ResolveUDPAddr("udp4", "127.0.0.1:1234")
    if err != nil {
        fmt.Println(err)
        return
    }

    connection, err := net.ListenUDP("udp4", s)
    if err != nil {
        fmt.Println(err)
        return
    }
}
在上面的客户端代码中,有没有一种方法可以让我设置源端口? 在上面的服务器代码中,有没有办法让我知道所使用的源端口?

func DialUDP(网络字符串,laddr,raddr*UDPAddr)(*UDPConn,错误)

laddr和raddr都使用UDPAddr结构,但您没有设置laddr

laddr, err := net.ResolveUDPAddr("udp", "<source_int>:50000")

raddr := net.UDPAddr{IP: net.ParseIP("<dest>"), Port: 50000}

conn, err := net.DialUDP("udp", laddr, &raddr)
laddr,err:=net.ResolveUDPAddr(“udp”,“50000”)
raddr:=net.UDPAddr{IP:net.ParseIP(“”),端口:50000}
conn,err:=net.DialUDP(“udp”、laddr和raddr)

Once通常希望使用
ListenUDP
而不是
DialUDP
,它允许您写入您选择的任何地址,避免了不寻常的“已连接的UDP”套接字。@alex当然,谢谢,我已将其设置为零。我现在设置它。在服务器端,有没有办法让我知道用于发送udp pkt的源端口?@jimB我有几个客户端将pkt发送到单个服务器。我想知道每个udp pkt的哪个客户端发送了pkt,所以我想获取udp的发送方(客户端)的远程地址(ip地址和源端口)pkt@RobGoguen:我不确定这与首选
ListenUDP
有什么关系。您可以在文档中查看可用的
UDPConn
。相关:,和