Je tente de transférer un fichier d'un ordinateur à un autre en utilisant TCP/IP. J'ai écrit le code en Java comme indiqué ci-dessous. Cependant, le code ne fonctionne pas et après avoir utilisé plusieurs blocs catch, j'ai découvert que cela était dû à une exception SocketException. quelqu'un peut-il me dire comment résoudre ce problème? Voici mon code-SocketException en Java: Transfert de fichiers via TCP/IP
TCPClient
import java.net.*;
de import java.io. ; import java.util.;
public class TCPClient {
public static void main (String args[])
{
try
{
Socket sock = new Socket("localhost", 6839);
InputStream is = null;
FileOutputStream out = null;
boolean doesntexist=false;
String filename = "D:\\"+"Test"+".pdf";
System.out.println("Here!");
File newplaylist = new File(filename);
doesntexist = newplaylist.createNewFile();
if(!doesntexist)
{
newplaylist.delete();
newplaylist.createNewFile();
}
byte[] mybytearray = new byte[1024];
is = sock.getInputStream();
// Create a new file output stream.
out = new FileOutputStream(newplaylist);
int count;
while ((count = is.read(mybytearray)) >= 0) {
out.write(mybytearray, 0, count);
}
out.close();
is.close();
sock.close();
}
catch(SocketException e)
{
System.out.println("Socket exception");
}
catch(ProtocolException e)
{
System.out.println("Protocol exception");
}
catch(IOException ds)
{
;
}
}
}
TCPServer
import java.util.*;
import java.io.*;
import java.net.*;
import java.nio.channels.*;
class Fileserver
{
public static void main(String args[]) throws IOException
{
ServerSocket server = new ServerSocket(6839);
File myFile = new File("E:\\file1.pdf");
FileInputStream file = null;
OutputStream os = null;
Socket sock=null;
sock = server.accept();
try
{
byte[] mybytearray = new byte[1024];
file = new FileInputStream(myFile);
os = sock.getOutputStream();
int count;
while ((count = file.read(mybytearray)) >= 0) {
os.write(mybytearray, 0, count);
}
os.flush();
}
catch(IOException e)
{
System.out.println("No file");
}
catch(IllegalBlockingModeException ea)
{
System.out.println("blah!");
}
finally
{
System.out.println("hello");
file.close();
os.close();
sock.close();
System.out.println("Socket closed");
}
}
}
Ne créez pas vos propres messages d'erreur. Utilisez celui de l'exception.Et * jamais * ignorer une exception d'E/S. – EJP