diff --git a/clientconnudpl.go b/clientconnudpl.go index e83b4ea8..78f646bb 100644 --- a/clientconnudpl.go +++ b/clientconnudpl.go @@ -58,15 +58,12 @@ func newClientConnUDPListenerPair(cc *ClientConn) (*clientConnUDPListener, *clie func newClientConnUDPListener(cc *ClientConn, multicast bool, address string) (*clientConnUDPListener, error) { var pc *net.UDPConn if multicast { - addr, err := net.ResolveUDPAddr("udp4", address) + host, port, err := net.SplitHostPort(address) if err != nil { return nil, err } - tmp, err := cc.c.ListenPacket("udp4", (&net.UDPAddr{ - IP: net.ParseIP("224.0.0.0"), - Port: addr.Port, - }).String()) + tmp, err := cc.c.ListenPacket("udp4", "224.0.0.0:"+port) if err != nil { return nil, err } @@ -84,7 +81,7 @@ func newClientConnUDPListener(cc *ClientConn, multicast bool, address string) (* } for _, intf := range intfs { - err := p.JoinGroup(&intf, &net.UDPAddr{IP: addr.IP}) + err := p.JoinGroup(&intf, &net.UDPAddr{IP: net.ParseIP(host)}) if err != nil { return nil, err } diff --git a/serverudpl.go b/serverudpl.go index 92fa892e..82e2815d 100644 --- a/serverudpl.go +++ b/serverudpl.go @@ -91,15 +91,12 @@ func newServerUDPListener( streamType StreamType) (*serverUDPListener, error) { var pc *net.UDPConn if multicast { - addr, err := net.ResolveUDPAddr("udp4", address) + host, port, err := net.SplitHostPort(address) if err != nil { return nil, err } - tmp, err := s.ListenPacket("udp4", (&net.UDPAddr{ - IP: net.ParseIP("224.0.0.0"), - Port: addr.Port, - }).String()) + tmp, err := s.ListenPacket("udp4", "224.0.0.0:"+port) if err != nil { return nil, err } @@ -117,7 +114,7 @@ func newServerUDPListener( } for _, intf := range intfs { - err := p.JoinGroup(&intf, &net.UDPAddr{IP: addr.IP}) + err := p.JoinGroup(&intf, &net.UDPAddr{IP: net.ParseIP(host)}) if err != nil { return nil, err }