2 changed files with 56 additions and 0 deletions
@ -0,0 +1,53 @@ |
|||
package discovery |
|||
|
|||
import ( |
|||
"fmt" |
|||
"net" |
|||
"os" |
|||
"strings" |
|||
"xtcfs/config" |
|||
) |
|||
|
|||
// 分隔符
|
|||
const separator = "|" |
|||
|
|||
func Listen() { |
|||
// 创建udp
|
|||
addr, err := net.ResolveUDPAddr("udp", config.G.LocalIP) |
|||
ChkError(err) |
|||
//
|
|||
conn, err := net.ListenUDP("updp", addr) |
|||
ChkError(err) |
|||
// 延迟关闭
|
|||
defer conn.Close() |
|||
|
|||
buf := make([]byte, 1024) |
|||
for { |
|||
//
|
|||
n, src, err := conn.ReadFromUDP(buf) |
|||
|
|||
remoteAddr := src.IP.String() + ":" + config.G.Port |
|||
|
|||
if err != nil { |
|||
fmt.Printf("Failed to read from %s: %v\n", remoteAddr, err) |
|||
continue |
|||
} |
|||
|
|||
message := string(buf[:n]) |
|||
parts := strings.Split(message, separator) |
|||
if len(parts) != 2 { |
|||
fmt.Printf("Received malformed message from %s: %s\n", remoteAddr, message) |
|||
continue |
|||
} |
|||
|
|||
// 切割
|
|||
fmt.Print("parts from udp read :%v", parts) |
|||
} |
|||
} |
|||
|
|||
func ChkError(err error) { |
|||
if err != nil { |
|||
fmt.Fprint(os.Stderr, "Faltat error", err.Error()) |
|||
os.Exit(1) |
|||
} |
|||
} |
|||
Loading…
Reference in new issue