Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

SSDP library

License

NotificationsYou must be signed in to change notification settings

koron/go-ssdp

Repository files navigation

PkgGoDevActions/GoGo Report Card

Based onhttps://tools.ietf.org/html/draft-cai-ssdp-v1-03.

Examples

There are tiny snippets for example. See also examples/ directory for workingexamples.

Respond to search

import"github.com/koron/go-ssdp"ad,err:=ssdp.Advertise("my:device",// send as "ST""unique:id",// send as "USN""http://192.168.0.1:57086/foo.xml",// send as "LOCATION""go-ssdp sample",// send as "SERVER"1800)// send as "maxAge" in "CACHE-CONTROL"iferr!=nil {panic(err)}// run Advertiser infinitely.quit:=make(chanbool)<-quit

Send alive periodically

import"time"aliveTick:=time.Tick(300*time.Second)for {select {case<-aliveTick:ad.Alive()    }}

Send bye when quiting

import ("os""os/signal")// to detect CTRL-C is pressed.quit:=make(chan os.Signal,1)signal.Notify(quit,os.Interrupt)loop:for {select {case<-aliveTick:ad.Alive()case<-quit:break loop    }}// send/multicast "byebye" message.ad.Bye()// teminate Advertiser.ad.Close()

Limitate interfaces to multicast

go-ssdp will send multicast messages to all IPv4 interfaces as default.When you want to limitate interfaces, see below snippet.

import ("github.com/koron/go-ssdp""net")en0,err:=net.InterfaceByName("en0")iferr!=nil {panic(err)}ssdp.Interfaces= []net.Interface{*en0}

go-ssdp will send multicast message only "en0" after this.


[8]ページ先頭

©2009-2025 Movatter.jp