Filling in the readme
This commit is contained in:
parent
de767a076b
commit
03bba8e79f
41
README.md
41
README.md
@ -1,4 +1,43 @@
|
||||
mdns
|
||||
====
|
||||
|
||||
Simple mDNS client/server library in Golang
|
||||
Simple mDNS client/server library in Golang. mDNS or Multicast DNS can be
|
||||
used to discover services on the local network without the use of an authoritative
|
||||
DNS server. This enables peer-to-peer discovery. It is important to note that many
|
||||
networks restrict the use of multicasting, which prevents mDNS from functioning.
|
||||
Notably, multicast cannot be used in any sort of cloud, or shared infrastructure
|
||||
environment. However it works well in most office, home, or private infrastructure
|
||||
environments.
|
||||
|
||||
Using the library is very simple, here is an example of publishing a service entry:
|
||||
|
||||
// Setup our service export
|
||||
host, _ := os.Hostname()
|
||||
service := &mdns.MDNSService{
|
||||
Instance: host,
|
||||
Service: "_foobar._tcp",
|
||||
Addr: []byte{127,0,0,1},
|
||||
Port: 8000,
|
||||
Info: "My awesome service",
|
||||
}
|
||||
service.Init()
|
||||
|
||||
// Create the mDNS server, defer shutdown
|
||||
server, _ := mdns.NewServer(&mdns.Config{Zone: service})
|
||||
defer server.Shutdown()
|
||||
|
||||
|
||||
Doing a lookup for service providers is also very simple:
|
||||
|
||||
// Make a channel for results and start listening
|
||||
entriesCh := make(chan *mdns.ServiceEntry, 4)
|
||||
go func() {
|
||||
for entry := range entriesCh {
|
||||
fmt.Printf("Got new entry: %v\n", entry)
|
||||
}
|
||||
}()
|
||||
|
||||
// Start the lookup
|
||||
mdns.Lookup("_foobar._tcp", entriesCh)
|
||||
close(entriesCh)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user