func AnnounceMyPresence() { localPrint := cryptowrapper.GetLocalFingerPrint() ap := customtypes.AnnouncePresence{localPrint, tcpPort} var annMsg customtypes.AnnounceMsg annMsg.Payload = ap annMsg.Kind = "ap" annMsgBytes, err := json.Marshal(annMsg) CheckError(err) listenConn.WriteToUDP(annMsgBytes, serverUDPAddr) }
func GetInfo(fingerprint string) *net.TCPAddr { ri := customtypes.RequestInfo{fingerprint} var annMsg customtypes.AnnounceMsg annMsg.Payload = ri annMsg.Kind = "ri" annMsgBytes, err := json.Marshal(annMsg) CheckError(err) listenConn.WriteToUDP(annMsgBytes, serverUDPAddr) readBytes := make([]byte, 1024) n, _, err := listenConn.ReadFromUDP(readBytes) CheckError(err) var readMsg net.TCPAddr err = json.Unmarshal(readBytes[0:n], &readMsg) readMsg.Port = tcpPort CheckError(err) return &readMsg }