java不能用socket发送大文件
我正在尝试创建一个发送文件的服务器-客户端结构,但当我发送大小超过200 MB的大文件时,我遇到了问题。
我使用ObjectOutputStream
和我自己的对象一起发送它们,该对象将文件保存在字节数组中,我希望使用Apache commons库将其保存到哪里
客户端发送方法
try{
Socket s = new Socket(ip, serverPort);
ObjectOutputStream output = new ObjectOutputStream(s.getOutputStream());
FileInputStream file = new FileInputStream(ClientFilePath+"\\"+ClientFileName);
datainBytes = IOUtils.toByteArray(file);
Packet paquete = new Packet(datainBytes,ServerFileDirectory,ClientFileName);
output.writeObject(paquete);
output.close();
} catch (ConnectException e){
//noinspection MagicConstant
JOptionPane.showMessageDialog(contentPane,"Conexion perdida","ERROR",0);
} catch(FileNotFoundException e){
JOptionPane.showMessageDialog(contentPane,"No tienes permisos para movere este archivo","ERROR",0);
} catch(IOException e) {
e.printStackTrace();
}
服务器接收方法
Packet paquete = null;
try {
//ClientIN is the input from the client initialized earlier
paquete = (Packet) ClientIN.readObject();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
FileUtils.writeByteArrayToFile(new File(paquete.getFilePathDestiny()+"\\"+paquete.getFileName()), paquete.getData());
我遇到的确切问题是,服务器试图读取文件,但挂起,而它什么也不做
共 (0) 个答案