Salut !
Bon, je sais que le titre est un peu vague et que l'on va m'indiquer les objets [netsend], [netreceive] ou encore [udpsend], [tcpsend], [tcpreceive] et [udpreceive]... seulement ces objets ne me conviennent pas pour ce que je souhaite faire.
En fait, j'ai 2 patchs : l'un fixe qui reste chez moi et pour lequel j'ai routé le bon port pour lui permettre de recevoir des données depuis n'importe où, et un autre patch "volant" qui est chargé d'envoyer au patch fixe des données depuis n'importe où.
Jusque là tout vas bien.
Là ou ça se corse, c'est que j'ai également besoin que le patch "volant" reçoive des données depuis le patch fixe, or pour ça il faudrait que je route les ports de la box ou du routeur sur lequel je suis connecté... mais comment faire quand je n'y ai pas accès ?
Y a t-il un moyen d'outrepasser le routage de ports et de recevoir dans tout les cas les messages, peu importe d'où le patch volant se trouve ? (mis à part la chine et la corée du nord, évidemment ^^).
Merci !
Hors ligne
... ma réponse se trouverait-elle du côté des VPN ?
Hors ligne
La solution pourrait être de passer par un serveur externe, accessible pour les 2 patch sur le web, avec un serveur de socket si la latence à une forte importance, sinon des requêtes régulières... Ainsi pas de problème de routeur... En principe :-)
Hors ligne
Je ne comprends pas, pourquoi un serveur externe ?
J'ai des connaissances limitées en réseau, je n'ai pas encore eu le courage de m'y mettre mais ces derniers jours j'ai pas mal entendu parler de "socket", notamment dans mon apprentissage en Python lorsque le sujet de l'utilisation du réseau se pose.
Je fouillerais de ce côté là si tu pense que ça peut me mener à ne plus me poser la question de la redirection de ports :-)
Sinon j'ai pensé à l'utilisation du réseau GSM (3G/4G) mais le shield Arduino GSM est assez cher :-/ (Pure Data recevrais et enverrais les données via une carte Arduino + Shield GSM dans ce cas).
Hors ligne
en voyant ce post ci, de prime abord jme suis dis qu'utiliser le port 80 devrait marcher... puis en lisant ce post la : http://codelab.fr/4923, jme suis dis que peut être pas en fait... d'où l'idée du serveur externe qui paraît en effet pas si mal...
Comment tu te verrais faire ce spcket Tepaze ? Un script python ?
Hors ligne
J'ai déjà tenté le port 80 mais rien n'y fait.
Pour le moment je ne vois que la solution onéreuse du shield GSM :-/
Hors ligne
Un serveur externe car ainsi, les requetes sont envoyés par les patch vers l'internet, puis ils attendent les réponses. Un peu comme lorsque l'on navigue sur internet.
Le serveur de socket permet juste de transmettre l'information dès qu'elle est reçu par le serveur au patch qui doit la recevoir. Je n'ai pas les connaissances techniques nécessaire à ce sujet, mais si tu avance la dessus ca m'interesse.
Une alternative au socket est de faire des requetes à intervalle régulier (toutes les 5 secondes par exemple). Mais c'est une demi solution à mon avis, même si dans les faits, cela fonctionne tout a fait. C'est aussi beaucoup plus facile à réaliser, du moins avec mon niveau de connaissance.
Ainsi pas de soucis de configuration reseau. Si tu as internet avec ton ordinarteur, tes patch communiqueront entre eux via ton serveur.
J'espere avoir ete plus clair.
Bon courage
PS : Je viens de voir ton message rep, mais je ne sais pas vraiment pour le coup. Il y a je ne sais plus ou sur codelab un exemple de serveur socket. J'essayerai de retrouver cela demain.
Dernière modification par Tepaze (2014-10-25 00:53:46)
Hors ligne
Donc, il y a un serveur "socket" sur les 2 machines qui communiquent entre eux via internet, c'est ça ?
Hors ligne
Je dirais plutot qu'il y a un serveur socket sur un serveur sur internet, et un client socket sur chaque patch
Mais si 1 à 2 seconde de latence ne te pose pas de soucis, la solution de la requete reguliere est plus facile à mettre en oeuvre, je le repete.
Dernière modification par Tepaze (2014-10-25 00:56:42)
Hors ligne
Ben plus la vitesse de transfert est rapide, mieux c'est... mais chaque chose en son temps :-)
Mais, comment le serveur externe passe au travers de la box sur laquelle je peux me connecter ? Par le port 80 ou un autre port ouvert "par défaut" ?
Hors ligne
En fait on ne ce pose jamais la question de comment fait le serveur lorsque l'on se connecte avec un ordinateur sur internet (port 80), tout simplement parce que le protocole est ainsi. L'ordinateur envoi la requête au serveur, le serveur répond et la page internet s'affiche alors.
L'idée c'est de faire de même, sauf que ce n'est pas depuis un navigateur mais depuis ton patch que la requête va être faite. Au serveur de ce débrouiller pour répondre.
En gros :
Patch A > requete > internet > serveur > script de sotckage des donnée à transmettre au patch B > serveur > internet > reponse > reussite / echec > Patch A
Patch B > requete > internet > serveur > script de lecture des données fournit par le patch A > serveur >internet > reponse > données > Patch B
Tu fais une requete toutes les 5 secondes sur le patch B qui "regardera" donc si de nouvelles données sont présentent sur le serveur.
Ci joint une abstraction pour faire des requete (GET) http.
En espérant t'avoir éclairé...
Hors ligne
Et voici le sujet ou trouver un websoket fonctionnel pour puredata :
http://codelab.fr/4769
Ici c'est un serveur de websocket.... Le client est un navigateur internet. Dans ton cas, le client est un patch et le serveur sur une machine sur internet qui ne permet pas necessairement de faire tourner pure data, mais bon, c'est toujours interessant
Hors ligne
holà question sans doute bête mais faut que je la pose:
comment on fait un [tcpserver 80] avec pure data?
Hors ligne
je réitere et precise ma question : comment on fait un [mrpeach/tcpserver 80] [iemnet/tcpserver 80]ou un [net/tcpserver 80]?
Chez moi l'objet donne sur la console
iemnet/tcpserver 80
... couldn't create
bien entendu si j'utilise un port comme le 8000 pas de pb... mais il veut pas créer une communication avec le port 80
Hors ligne
Problème de droits ? Classiquement, l'utilisation des ports inférieurs à 1024 nécessite des droits admin.
Hors ligne
Pages: 1 2