Comment transférer des fichiers d'un ordinateur à un autre via le réseau à l'aide de Java?
- Je besoin d'une application simple, de préférence une croix-plate-forme de l'un, qui permet d'envoyer des fichiers entre deux ordinateurs.
Il suffit d'accepter et envoyer les fichiers, et d'afficher une barre de progression. Quelles sont les applications que pourrais-je l'utiliser ou comment pourrais-je écrire?
Êtes-vous en poussant ou en tirant le fichier? Le téléchargement ou le téléchargement?
OriginalL'auteur | 2009-07-10
Vous devez vous connecter pour publier un commentaire.
L'envoi et la Réception de Fichiers
La réception et l'envoi d'un fichier, fondamentalement, se décompose à deux simples morceaux de code.
Recevoir le code:
L'envoi de code:
L'envoi morceau de code qui va être exécuté sur l'ordinateur qui envoie le code quand ils veulent envoyer un fichier.
La réception, le code doit être mis à l'intérieur d'une boucle, de sorte que chaque fois que quelqu'un veut se connecter au serveur, le serveur peut traiter la demande et revenir ensuite en attente sur serverSoc.accept().
Pour permettre l'envoi de fichiers entre deux ordinateurs, chaque ordinateur doit exécuter le serveur (la réception de code) pour écouter les fichiers entrants, et ils ont besoin pour exécuter le code d'envoi quand ils veulent envoyer un fichier.
Barre De Progression
La
JProgressBar
dans Swing est assez facile à utiliser. Cependant, à la faire fonctionner correctement et de montrer les progrès actuels de transfert de fichiers est un peu plus difficile.Pour obtenir une barre de progression s'affiche sur un formulaire consiste seulement en la déposant sur une
JFrame
et peut-êtresetIndeterminate(false)
donc chapeau il montre que votre programme de travail.De mettre en œuvre une barre de progression correctement, vous aurez besoin pour créer votre propre mise en œuvre d'un
SwingWorker
. La Java des tutoriels ont un bon exemple de cela dans leursleçon de simultanéité.C'est assez difficile problème sur son propre bien. Je recommande de demander ce dans son propre question si vous avez besoin de plus d'aide avec elle.
Votre routeur doit gérer la traduction d'adresse pour vous.
oui mais comment est l'expéditeur supposé savoir port pour envoyer le paquet tel qu'il sera correctement acheminé? plus sur superuser.com/questions/483033/...
Je crois qu'il devrait être le même port que vous avez spécifié sur votre support. Malheureusement, je ne suis pas un réseau d'experts, donc je ne peux pas vraiment fournir plus d'informations.
Disons Routeur-a envoie Un paquet à Router-B via le port 30000 (préconfiguré), le Routeur-B reçoit le paquet, mais comment sait-elle que ce paquet est transmis à l'Ordinateur-Un, et pas d'Ordinateur-B?
OriginalL'auteur jjnguy
Woof est un cool script Python qui pourraient travailler pour vous:
http://www.home.unix-ag.org/simon/woof.html
OriginalL'auteur Nate
Je vais considérer à l'aide de FTP. Apache a un FTP client et un serveur
Edit: spdenne la suggestion de de HTTP est aussi bonne, surtout si tout le monde a la version 6 de Java. Si non, vous pouvez utiliser quelque chose comme Minuscule Serveur Web Java.
Vous êtes certainement allez avoir besoin d'un code au-dessus de la JRE. La seule question est de savoir si vous avez écrit que le code vous-même, ou à l'aide de bibliothèques existantes. Si vous écrivez vous-même, il sera probablement non-standard et vous devrez l'entretenir vous-même.
OriginalL'auteur Matthew Flaschen
Vous pouvez en écrire un à l'aide de Socket de programmation en Java. Vous devez écrire un Serveur et un programme Client. Le serveur serait d'utiliser un ServerSocket pour écouter les connexions, et le Client serait d'utiliser un Socket pour se connecter à ce serveur sur le port spécifié.
Voici un tutoriel: http://www.javaworld.com/jw-12-1996/jw-12-sockets.html
Pourquoi pas? C'est assez rapide à faire, et il serait en Java.
Je viens de le faire il !
Oui, vous l'avez fait : )
Rapide à faire à la première (et une bonne expérience d'apprentissage), mais lente pour maintenir la production.
OriginalL'auteur AlbertoPL
De Sun Java 6 est doté d'un poids léger, API du serveur HTTP et la mise en œuvre. Vous pourrait assez facilement l'utiliser pour servir votre fichier, à l'aide de URLConnection pour l'obtenir.
OriginalL'auteur Stephen Denne
Découvrez cette tutoriel, il est vraiment un exemple de base. Vous auriez probablement souhaitez également d'envoyer des en-têtes de contrôle avant le fichier envoyé, contenant la taille du fichier, nom de fichier, etc.
Sinon, la base d'un protocole existant, comme cette projet.
OriginalL'auteur Kazar
Pouvez-vous installer des serveurs FTP sur une de vos machines ?
Si vous le pouvez, vous n'aurez qu'à utiliser un client FTP (FileZilla par exemple, qui ont une barre de progression).
OriginalL'auteur Benoit Courtine
Deux applications les plus populaires sont "scp" et "rsync". Ce sont standard sur Linux, sont généralement disponibles sous Unix et peut être exécuté sur Windows sous cygwin, bien que vous pourriez être en mesure de trouver windows-applications natives qui peuvent faire aussi bien. (Mastic peut servir comme un client SCP).
Pour toute sorte de pc à pc, transfert de fichiers, vous devez disposer d'un auditeur sur l'ordinateur de destination. Cela peut être un démon de l'application (ou de processus de système Windows), ou il peut être un style Unix "superserver" qui est configuré pour charger et exécuter le fichier-copier app quand quelqu'un communique avec le port d'écoute.
SCP et l'un des rsync modes de faire, il doit y avoir une sorte de connexion à distance de la capacité. Rsync peut également publier des ressources qu'il va gérer le répertoire. Depuis le concept de Windows "connexion à distance" n'est pas aussi bien établie que c'est sous Linux, c'est peut-être préférable. En Plus, c'limites d'accès à distance pour définir les sources/cibles sur la machine de destination au lieu de permettre l'accès à tout (autorisé) de la partie du système de fichiers.
OriginalL'auteur Tim H
De transfert sur un réseau de manière plus efficace. Jetez un oeil à cet article qui explique le transfert efficace des données par le biais de zéro copie
OriginalL'auteur Prabhu R