我写了一个Java Client,它向广播地址发送消息。
我还编写了一个 Java Server,它接受所有发送的消息并将消息发送回客户端。
现在我想尝试在 Go 中做完全相同的事情,只是为了获得一些经验。服务器工作正常,正在接收消息并响应 Java 客户端。
但是我的 Go Client 只向 Go/Java 服务器发送消息,但没有收到任何消息。根据wireshark的说法,消息被发送回正确的IP和端口,但显然该端口无法访问。
我的代码如下:转到服务器:
package main
import (
"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())
} }
一只萌萌小番薯
郎朗坤
largeQ
随时随地看视频慕课网APP
相关分类