Bonjour à tous
Afin de me familiariser avec les sockets j'ai réaliser deux petits programmes, un client et un serveur. Le client envoie un fichier au serveur qui le receptionne et l'enregistre sur le pc distant.
Voici les codes :
+Serveur
+Client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 import java.io.*; import java.net.*; public class Serveur { static final int port = 8080; public static void main(String[] args) throws Exception { //On crée la variable de type socket attendant une connection ServerSocket s = new ServerSocket(port); Socket soc = s.accept(); FileOutputStream f = new FileOutputStream("la.mp3"); BufferedOutputStream fr = new BufferedOutputStream(f); BufferedInputStream fenvoi = new BufferedInputStream(soc.getInputStream()); int octet = 0; while (octet != -1 ) { octet = fenvoi.read(); fr.write(octet); } fenvoi.close(); fr.close(); f.close(); soc.close(); } }
La connection et le transfert s'établissent trés bien avec l'adresse localhost. Mais dés qu'on fait ces opérations avec un pc distant à travers internet, la connection n'arrive pas à s'opérer et une exception est levée qui dit que le temps d'attente à expiré.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import java.io.*; import java.net.*; public class Client { static final int port = 8080 ; public static void main(String[] args) throws Exception { Socket socket = new Socket("xxx.xxx.xxx.xxx", port); System.out.println("SOCKET = " + socket); File fichier = new File("ici.mp3"); FileInputStream f = new FileInputStream(fichier); BufferedInputStream fr = new BufferedInputStream(f); BufferedOutputStream fenvoi = new BufferedOutputStream(socket.getOutputStream()); int octet = 0; while (octet != -1 ) { octet = fr.read(); fenvoi.write(octet); } fenvoi.close(); fr.close(); f.close(); socket.close(); } }
Est-ce que quelqu'un à une solution pour palier à ce probléme ?
Merci beaucoup.
Partager