[JAVA]transfert fichier vers un pc distant

Résolu/Fermé
calaglin2
Messages postés
44
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
21 septembre 2009
- 19 févr. 2007 à 21:59
yuri648
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
- 26 janv. 2010 à 22:26
Je vous explique mon problème :

Je commence à développer actuellement un client bittorrent et je prend comme base un modèle client-serveur classique avec des socket etc ... seulement je n'arrive même pas à connecter le client au serveur sur un pc distant et encore moins à envoyer un fichiers de l'un à l'autre.

j'aimerai connecter le client au serveur à l'aide de l'ip et du numero de port que le client doit déjà connaitre

merci d'avance

4 réponses

calaglin2
Messages postés
44
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
21 septembre 2009
13
20 févr. 2007 à 16:15
ça y est j'ai enfin réussi à me connecter sur mon reseau ( c'était juste un problème de config du routeur ) mais je n'arrive toujours pas à me connecter à un pc distant se trouvant derrière un routeur , la connection échoue systématiquement. Voici le code de mon client :


import java.io.*;
import java.util.*;
import java.net.*;


public class Client {


static String serverName="localhost";
static int port=12345;
static InetAddress ipRoot;
static InetAddress ip;


public static void main(String[] a){
try{
iproot = InetAddress.getByName("82.67.139.165");
ip = InetAddress.getByName("192.168.0.2");
Random rand=new Random();
for(int i=0;i<100;i++){
Socket sock=new Socket(iproot, port, ip,port);
PrintWriter os=new PrintWriter(sock.getOutputStream(), true);

os.println(rand.nextInt(100));
sock.close();}
}
catch (UnknownHostException ex) {
System.err.println(ex);
}
catch(java.io.IOException e){
System.out.println("Erreur de connexion");
}
}

}


le routeur redirige son port 12345 sur le 12345 du pc

merci d'avance
1
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 327
20 févr. 2007 à 17:12
salut.
Pourquoi ouvrir et fermer le socket à chaque foi dans la boucle for ?
Moi, je mettrai l'initialisation et la fermeture en dehors.
0
miras1
Messages postés
7
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
31 décembre 2008

24 août 2008 à 17:19
Bonjour,
Je vous explique mon problème :

Moi aussi je commence à développer actuellement un client et un serveur communiquent avec des socket etc ... seulement je n'arrive même pas à connecter le client au serveur sur un seul pc et encore moins à envoyer un ''hello word '' ou bien un fichiers de l'un à l'autre.
je voudrais connecter le client au serveur à l'aide de l'ip et du numero de port .
si vous pouvais m'aider avec ton code source.

Merci d'avance bien cordialement.
0
Bonjour,
essayer avec ces codes
//Client
// Figure 21.4: Client.java
// Définit un Client qui lira les informations envoyées
// à partir d'un Serveur et affiche les informations.
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Client extends JFrame {
private JTextField texte;
private JTextArea affichage;
ObjectOutputStream sortie;
ObjectInputStream entree;
String message = "";

public Client()
{
super( "Client" );

Container c = getContentPane();

texte = new JTextField();
texte.setEnabled( false );
texte.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e )
{
envoyerDonnees( e.getActionCommand() );
}
}
);
c.add( texte, BorderLayout.NORTH );

affichage = new JTextArea();
c.add( new JScrollPane( affichage ),
BorderLayout.CENTER );

setSize( 300, 150 );
show();
}

public void lanceClient()
{
Socket client;

try {
// Etape 1: Créer un Socket pour assurer la connexion.
affichage.setText( "Tentative de connexion\n" );
client = new Socket(
InetAddress.getByName( "127.0.0.1" ), 5000 );

affichage.append( "Connecté à: " +
client.getInetAddress().getHostName() );

// Etape 2: Get des flux d'entrée et de sortie.
sortie = new ObjectOutputStream(
client.getOutputStream() );
sortie.flush();
entree = new ObjectInputStream(
client.getInputStream() );
affichage.append( "\nFlux d'E/S acquis\n" );

// Etape 3: Procéder à la connexion.
texte.setEnabled( true );

do {
try {
message = (String) entree.readObject();
affichage.append( "\n" + message );
affichage.setCaretPosition(
affichage.getText().length() );
}
catch ( ClassNotFoundException cnfex ) {
affichage.append(
"\nType d'objet reçu inconnu" );
}
} while ( !message.equals( "SERVEUR>>> TERMINER" ) );

// Etape 4: Clore la connexion.
affichage.append( "Clôture de la connexion.\n" );
entree.close();
sortie.close();
client.close();
}
catch ( EOFException eof ) {
System.out.println( "Serveur a clôturé la connexion" );
}
catch ( IOException e ) {
e.printStackTrace();
}
}

private void envoyerDonnees( String s )
{
try {
message = s;
sortie.writeObject( "CLIENT>>> " + s );
sortie.flush();
affichage.append( "\nCLIENT>>>" + s );
}

catch ( IOException cnfex ) {
affichage.append(
"\nErreur écriture de l'objet" );
}
}

public static void main( String args[] )
{
Client app = new Client();

app.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);

app.lanceClient();
}
}
//Serveur
// Figure 21.3: Serveur.java
// Mettre en place un serveur qui attend la connexion
// d'un client, envoie une chaîne de caractères au client,
// et ferme la connexion.
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Serveur extends JFrame {
private JTextField texte;
private JTextArea affichage;
ObjectOutputStream sortie;
ObjectInputStream entree;

public Serveur()
{
super( "Serveur" );

Container c = getContentPane();

texte = new JTextField();
texte.setEnabled( false );
texte.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e )
{
envoyerDonnees( e.getActionCommand() );
}
}
);
c.add( texte, BorderLayout.NORTH );

affichage = new JTextArea();
c.add( new JScrollPane( affichage ),
BorderLayout.CENTER );

setSize( 300, 150 );
show();
}

public void lancerServeur()
{
ServerSocket serveur;
Socket connexion;
int compteur = 1;

try {
// Etape 1: Créer un ServerSocket.
serveur = new ServerSocket( 5000, 100 );

while ( true ) {
// Etape 2: Attendre une connexion.
affichage.setText( "Attente d'une connexion\n" );
connexion = serveur.accept();

affichage.append( "Connexion " + compteur +
" reçue de: " +
connexion.getInetAddress().getHostName() );

// Etape 3: Get des flux d'entrée et de sortie.
sortie = new ObjectOutputStream(
connexion.getOutputStream() );
sortie.flush();
entree = new ObjectInputStream(
connexion.getInputStream() );
affichage.append( "\nFlux d'E/S acquis\n" );

// Etape 4: Procéder à la connexion.
String message =
"SERVEUR>>> connexion réussie";
sortie.writeObject( message );
sortie.flush();
texte.setEnabled( true );

do {
try {
message = (String) entree.readObject();
affichage.append( "\n" + message );
affichage.setCaretPosition(
affichage.getText().length() );
}
catch ( ClassNotFoundException cnfex ) {
affichage.append(
"\nType d'objet reçu inconnu" );
}
} while ( !message.equals( "CLIENT>>> TERMINER" ) );

// Etape 5: Close connexion.
affichage.append( "\nUtilisateur a clôturé connexion" );
texte.setEnabled( false );
sortie.close();
entree.close();
connexion.close();

++compteur;
}
}
catch ( EOFException eof ) {
System.out.println( "Client a clôturé connexion" );
}
catch ( IOException io ) {
io.printStackTrace();
}
}

private void envoyerDonnees( String s )
{
try {
sortie.writeObject( "SERVEUR>>> " + s );
sortie.flush();
affichage.append( "\nSERVEUR>>>" + s );
}
catch ( IOException cnfex ) {
affichage.append(
"\nErreur écriture de l'objet" );
}
}

public static void main( String args[] )
{
Serveur app = new Serveur();

app.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);

app.lancerServeur();
}
}
0
yuri648
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
26 janv. 2010 à 22:26
bonsoir
est ce que vous pouvez m'expliquer comment econnecter entre 2 pC didtant avec internet et merci d'avance
0