Non j'ai pas le temps, et en plus ça fait longtemps que j'ai pas fait de Python.
Mais voilà ce que je te conseille de faire pour écrire ton programme :
Déjà il faut que tu choisisse un langage.
Je te conseille de le faire en python, c'est un langage assez simple à apprendre et en plus comme c'est un langage de script, ça marche partout : windows, Mac OS, Linux.
Le seul inconvénient est qu'il faut installer python sur la machine qui devra faire tourner le programme.
Pour le télécharger c'est ici :
http://www.python.org/download/releases/3.3.0/, tu prends
Windows x86 MSI Installer (3.3.0) (sig).
Sinon, tu peux le faire en C#, mais pour pouvoir compiler ton programme il va te falloir Microsoft Visual Studio, et en plus ça marchera que sous windows*.
Si tu ne connais pas du tout la programmation ça risque d'être un peut difficile, mais voici quelques conseils :
- D'abord essai simplement d'envoyer un paquet UDP, n'importe quoi, par exemple un message tout simple : "Hello World". Utilise UDP Test Tool pour voir si ça fonctionne.
- Ensuite, essaie au contraire de recevoir des paquets UDP. Les paquets tu les envoie avec un logiciel tiers comme UDP Test Tool ou encore Magic packet sender.
- Une fois que tu sais envoyer et recevoir des paquets en UDP, t'as plus qu'à combiner les 2 pour faire une fonction qui renvoi tout ce qu'elle reçoit sur l'adresse de broadcast (ex: 192.168.1.255), exactement comme dans mon tuto arduino :
- Code: Tout sélectionner
void forward_wol_magic_packet(){
// si on a des données à lire, on va le traiter
int packetSize = udp.parsePacket();
if(packetSize)
{
// lecture des données et stockage dans packetBufffer
udp.read(packetBuffer, MAGIC_PACKET_SIZE);
// envoi du paquet sur l'adresse de broadcast
udp.beginPacket(broadcastIP, 9);
udp.write(packetBuffer, MAGIC_PACKET_SIZE);
udp.endPacket();
}
}
J'ai trouvé un bout de code (en python) qui devrait pas mal t'aider sur
stackoverflow (la bible) :
- Code: Tout sélectionner
#!/usr/bin/python
from socket import *
bufsize = 1024 # Modify to suit your needs
targetHost = "somehost.yourdomain.com"
listenPort = 1123
def forward(data, port):
print "Forwarding: '%s' from port %s" % (data, port)
sock = socket(AF_INET, SOCK_DGRAM)
sock.bind(("localhost", port)) # Bind to the port data came in on
sock.sendto(data, (targetHost, listenPort))
def listen(host, port):
listenSocket = socket(AF_INET, SOCK_DGRAM)
listenSocket.bind((host, port))
while True:
data, addr = listenSocket.recvfrom(bufsize)
forward(data, addr[1]) # data and port
listen("localhost", listenPort)
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol