1 // Copyright 2016 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
13 func TestListenMulticastUDP(t
*testing
.T
) {
14 testenv
.MustHaveExternalNetwork(t
)
16 ifcs
, err
:= Interfaces()
21 t
.Skip("no network interfaces found")
25 for _
, ifc
:= range ifcs
{
26 if ifc
.Flags
&FlagUp|FlagMulticast
!= FlagUp|FlagMulticast
{
34 t
.Skipf("no multicast interfaces found")
37 c1
, err
:= ListenMulticastUDP("udp4", mifc
, &UDPAddr
{IP
: ParseIP("224.0.0.254")})
39 t
.Fatalf("multicast not working on %s", runtime
.GOOS
)
41 c1addr
:= c1
.LocalAddr().(*UDPAddr
)
47 c2
, err
:= ListenUDP("udp4", &UDPAddr
{IP
: IPv4zero
, Port
: 0})
48 c2addr
:= c2
.LocalAddr().(*UDPAddr
)
54 n
, err
:= c2
.WriteToUDP([]byte("data"), c1addr
)
59 t
.Fatalf("got %d; want 4", n
)
62 n
, err
= c1
.WriteToUDP([]byte("data"), c2addr
)
67 t
.Fatalf("got %d; want 4", n
)