有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案