Terrano Posté(e) le 21 mars 2016 Posté(e) le 21 mars 2016 Bonjour, Je travaille sur un projet personnel (https://plus.google.com/u/0/communities/117822114732715162346) et j'aurais besoin de votre aide. Je cherche a faire un zeroconf entre mes clients et mon serveur Synology. Je pensais mettre un broadcast en python comme par exemple : #!/usr/bin/python import socket UDP_PORT = 50005 MESSAGE = "I am here.." sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #Set the option to say that this socket is for Broacast sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) sock.bind(("0.0.0.0", UDP_PORT)) while True: #Listen for Discover requests data, addr = sock.recvfrom(1024) print("address :" + addr[0]) #Send the Advertise message sock.sendto(MESSAGE, addr) print("Message:" + MESSAGE + "Address:" + addr[0]) Comment configurer ce broadcast en service continu (démarrage auto au boot du syno) pour qu'il réponde à mes clients ? Coté client, j'aurais par exemple ceci : #!/usr/bin/python import socket UDP_IP = "192.168.0.255"; UDP_PORT = 50005; MESSAGE = "Who is out there.." #Listen at an predetermined Broadcast Address and port sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); sock.bind(("0.0.0.0", UDP_PORT)); sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) #send Discover mesage sock.sendto(MESSAGE, (UDP_IP, UDP_PORT)) sock.sendto(MESSAGE, (UDP_IP, UDP_PORT)) while True: #Listen for advertisement data, addr = sock.recvfrom(1024) print("Node is at:" + addr[0]) Le but est que mes clients récupèrent automatiquement la configuration du serveur Mosquitto du NAS. Merci d'avance pour votre aide. 0 Citer
Terrano Posté(e) le 1 avril 2016 Auteur Posté(e) le 1 avril 2016 Je réponds à moi-même. créer un script S99broadcast.sh dans le dossier /usr/local/etc/rc.d/ #!/bin/ash # Synology DSM bootup script # Configured Variables: SCRIPT_EXEC="/volume1/script/broadcast.py" # Begin script case "$1" in start) printf "%-30s" "Starting script" python ${SCRIPT_EXEC} & printf "[%4s]\n" "done" ;; stop) printf "%-30s" "Stopping script" printf "[%4s]\n" "done" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0 Terminer par un chmod +x S99broadcast.sh pour le rendre exécutable. 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.