Go 发送udp数据包时如何设置源端口
在客户端,我想在发送UDP数据包时设置UDP源端口。 在服务器上,我想知道在服务器上接收到的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
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
。相关:,和