J'ai besoin d'une application simple, de préférence une plate-forme croisée, qui permet l'envoi de fichiers entre deux ordinateurs. p>
Il est juste nécessaire d'accepter et d'envoyer les fichiers et d'afficher une barre de progression. Quelles applications pourrais-je utiliser ou comment pourrais-je écrire un? P>
9 Réponses :
Vous pouvez en écrire un à l'aide de la programmation de la prise en Java. Vous auriez besoin d'écrire un serveur et un programme client. Le serveur utiliserait un serversocket pour écouter des connexions et le client utiliserait une prise pour se connecter à ce serveur sur le port spécifié. P>
Voici un tutoriel: HTTP: //www.javaworld .COM / JW-12-1996 / JW-12-Sockets.html P>
Pourquoi pas? Il est assez rapide à faire et ce serait en Java.
Quick à faire au début (et une bonne expérience d'apprentissage), mais lentement à entretenir pour la production.
Consultez Ce tutoriel, c'est un exemple vraiment élémentaire. Vous voudrez probablement également envoyer des en-têtes de contrôle avant l'envoi du fichier réel, contenant la taille du fichier, nom de fichier, etc. p>
Alternativement, base sur un protocole existant, comme Ce projet. P>
Merci c'est ce que je cherchais.
Je envisagerais fortement d'utiliser FTP. Apache a une ftp client et a serveur p>
EDIT: Suggestion de Spdennne de HTTP est également bonne, surtout si tout le monde a Java 6. Sinon, vous pouvez utiliser quelque chose comme
Oui, je pourrais .. Mais je voulais quelque chose de aussi simple que possible pour que les débutants ne puissent rien installer ... En dehors de l'installation de Java, je pense que la plupart des gens ont déjà.
Vous allez certainement avoir besoin de code sur le JRE et au-dessus de la JRE. La seule question est de savoir si vous écrivez ce code vous-même ou en utilisant les bibliothèques existantes. Si vous vous écrivez vous-même, cela ne sera probablement pas standard et vous devrez le maintenir vous-même.
Pouvez-vous installer des serveurs FTP sur (l'une des) machines? P>
Si vous le pouvez, vous devrez simplement utiliser un client FTP (FileZilla par exemple, qui possède une barre de progression). P>
Java 6 de Sun inclut un poids léger API de serveur HTTP et mise en œuvre. Vous pouvez utiliser assez facilement cela pour servir votre fichier, en utilisant UrlConnection pour l'obtenir. P>
Les fichiers d'envoi et de réception forts> L'envoi et la réception d'un fichier se casse essentiellement à deux morceaux de code simples. p> Code de réception: P> File fileToSend;
InputStream fileStream = new BufferedInputStream(fileToSend);
Socket connection = new Socket(CONNECTION_ADDRESS, LISTENING_PORT);
OutputStream out = connection.getOutputStream();
// my method to move data from the file inputstream to the output stream of the socket
copyStream(fileStream, out);
@jjinguy Quelle adresse IP devrions-nous mettre pour connexion_address si les ordinateurs ne sont pas dans un réseau local? Par exemple, mon adresse IP externe est 1.2.3.4 mais si vous mettez 1.2.3.4 en tant que Connection_Address, comment le routeur va-t-il savoir quel ordinateur (au sein de mon réseau domestique) pour transférer le paquet?
@Pacerier Votre routeur devrait gérer la traduction de l'adresse pour vous.
@jjinguy, oui mais comment l'expéditeur est-il censé savoir quel port i> pour envoyer le paquet à telle sorte qu'il sera correctement acheminé? plus sur SuperUser.com/Questions/483033/...
@Pacerier Je pense que cela devrait être le même port que vous spécifiez sur votre prise. Malheureusement, je ne suis pas un expert en réseau, je ne peux donc pas vraiment fournir plus d'informations.
@jjinguy, disons le routeur-a envoie un paquet à Router-B via Port 30000 (préconfiguré), Router-B reçoit le paquet, mais comment sait-il que ce paquet doit être transmis à un ordinateur-A, et non informatique B?
woof est un script python cool qui pourrait fonctionner pour vous: P>
Deux applications populaires sont "SCP" et "RSYNC". Celles-ci sont en standard sur Linux, sont généralement disponibles sur UNIX et peuvent être exécutées sous Windows sous Cygwin, bien que vous puissiez trouver des applications indigènes Windows pouvant le faire également. (Metty peut servir de client SCP). P>
Pour toute sorte de transfert de fichiers PC-TO PC, vous devez avoir un auditeur sur le PC de destination. Cela peut être une application Daemon (ou un processus système Windows), ou il peut s'agir d'un "superserver" de type UNIX configuré pour charger et exécuter l'application réelle-copie lorsque quelqu'un contacte le port d'écoute. P>
SCP et l'un des modes RSYNC nécessitent une sorte de capacité de connexion à distance. RSYNC peut également publier des ressources qu'il gérera le répertoire. Étant donné que le concept d'une "connexion à distance" Windows n'est pas aussi bien établi que sous Linux, cela peut être préférable. De plus, il limite l'accès à distance aux sources / cibles définies sur la machine de destination au lieu de permettre l'accès à toute partie (autorisée) du système de fichiers. P>
Pour transférer plus efficacement un réseau. Jetez un coup d'œil à Cet article qui explique des données efficaces Transférer à travers zéro copie p>
Poussez-vous ou tirez-vous le fichier? Télécharger ou télécharger?