Bonjour, je vous écris aujourd'hui car je développe en Python et en Javascript (NodeJS + Electron) des applications de messageries & transfer de fichiers.
Pourquoi écrire ici me direz-vous, je me permet d'écrire sur ce thread car les développeurs Javascript/Web ont moins souvent l'occasion d'avoir ce type de problématique, les développeurs C expérimentés ont plus souvent des bases plus solides en informatique global et/ou ont pu déjà avoir à faire à ce genre de problématique.
Pour revenir au sujet actuellement je connais les méthodes consistant à utiliser des serveurs STUN/TURN/ICE mais c'est très peu documenté et j'aimerais voir si il n'y a pas des techniques plus simple pour faire ce que je veux.
Le problème : J'ai une application qui fais client & serveur à la fois, dans le sens ou chacun peut envoyer un fichier à un de ses contact ou en recevoir, mais le soucis est qu'actuellement la personne en face doit forcément ouvrir le port sur son routeur pour recevoir un fichier ou un message, ce qui est tout de même pas réellement pratique. J'aimerais donc savoir si quelqu'un parmi vous serait comment faire pour contourner ce problème, tout comme Discord, MSN à l'époque et tout ce genre d'applications qui permettent de juste installer le programme et de pouvoir discuter/s'envoyer des fichiers sans avoir besoin de toucher à son routeur et sans occuper le port 80.
J'espère que le fait que je ne travail ce projet en C/C++ ne sera pas mal pris :/
de souvenir en C un serveur peut décider d'envoyer au client de sa propre initiative, donc il suffit juste que le serveur soit accessible, ensuite ton client s'y connecte (voir plusieurs) et roulez jeunesse. Donc pour nous le problème ne se pose pas vraiment.
Par contre vue que tu utilise js pourquoi ne pas utiliser io.socket, tu devrais pouvoir t'en sortir, non ?
la connaissance est une chose qui ne nous appauvrit pas quand on la partage.
de souvenir en C un serveur peut décider d'envoyer au client de sa propre initiative, donc il suffit juste que le serveur soit accessible, ensuite ton client s'y connecte (voir plusieurs) et roulez jeunesse. Donc pour nous le problème ne se pose pas vraiment.
Par contre vue que tu utilise js pourquoi ne pas utiliser io.socket, tu devrais pouvoir t'en sortir, non ?
Merci pour ta réponse Ox, malheureusement ma question à été mal comprise (ou mal posé) Le soucis est qu'imaginons que tu utilise mon application, développé avec n'importe quelle technologie, tu es A et ton ami(e) est B.
A envoie un fichier à B, B et chez un opérateur Français classique qui fournit une box qui continent un Firewall intégré, donc par défaut ta requête ne passera pas chez B car ton programme tourne sur un port autre que les ports classiques ouverts par défaut (web/mail/ssh) donc le Firewall de la Box de B bloquant ta requête il/elle ne reçoit rien.
Pour que ta requête passe, B devra ouvrir le port qu'utilise ton programme, mais ce n'est clairement pas pratique tout tout et les applications de messageries classiques s'appuie donc sur des techniques pour contourner ce soucis, il y a la technique d'utiliser des serveurs "TURN/STUN/ICE" comme dit plus haut, mais j'aimerais savoir si quelqu'un en connait des plus simple à mettre en place pour un projet en début de vie.
Tu te connecte à un serveur en https (port TCP 443 jamais bloqué) qui garde la trace des informations que tu veux partager. Dans ton applis tu envoie sur le serveur des informations à partager qui y serons stoquées. Tu intéroge le serveur pour récupérer la liste des informations partagées Tu affiche les informations partagées dans le client...
la connaissance est une chose qui ne nous appauvrit pas quand on la partage.
Mon GitHub
Pas d'aide concernant le code par MP, le forum est là pour ça :)