httpu client bind to specific address function (#11)
added additional function to allow for specifying which IP the PacketConn should listen on and broadcast on
This commit is contained in:
parent
46bde78b11
commit
d7ddae7b46
@ -3,6 +3,7 @@ package httpu
|
|||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
@ -28,6 +29,20 @@ func NewHTTPUClient() (*HTTPUClient, error) {
|
|||||||
return &HTTPUClient{conn: conn}, nil
|
return &HTTPUClient{conn: conn}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewHTTPUClientAddr creates a new HTTPUClient which will broadcast packets
|
||||||
|
// from the specified address, opening up a new UDP socket for the purpose
|
||||||
|
func NewHTTPUClientAddr(addr string) (*HTTPUClient, error) {
|
||||||
|
ip := net.ParseIP(addr)
|
||||||
|
if ip == nil {
|
||||||
|
return nil, errors.New("Invalid listening address")
|
||||||
|
}
|
||||||
|
conn, err := net.ListenPacket("udp", ip.String()+":0")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &HTTPUClient{conn: conn}, nil
|
||||||
|
}
|
||||||
|
|
||||||
// Close shuts down the client. The client will no longer be useful following
|
// Close shuts down the client. The client will no longer be useful following
|
||||||
// this.
|
// this.
|
||||||
func (httpu *HTTPUClient) Close() error {
|
func (httpu *HTTPUClient) Close() error {
|
||||||
|
Loading…
Reference in New Issue
Block a user