Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java客户端服务器有时抛出java.io.UTFDataFormatException while(!socket.isClosed()){ //睡眠(100); clientData=新数据输入流(in); 要接收的文件=clientData.readInt(); System.out.println(“已发送的文件:+待接收的文件”); fileName=新字符串[要接收的文件]; fileSize=newint[要接收的文件]; for(int i=0;i_Java_Sockets - Fatal编程技术网

java客户端服务器有时抛出java.io.UTFDataFormatException while(!socket.isClosed()){ //睡眠(100); clientData=新数据输入流(in); 要接收的文件=clientData.readInt(); System.out.println(“已发送的文件:+待接收的文件”); fileName=新字符串[要接收的文件]; fileSize=newint[要接收的文件]; for(int i=0;i

java客户端服务器有时抛出java.io.UTFDataFormatException while(!socket.isClosed()){ //睡眠(100); clientData=新数据输入流(in); 要接收的文件=clientData.readInt(); System.out.println(“已发送的文件:+待接收的文件”); fileName=新字符串[要接收的文件]; fileSize=newint[要接收的文件]; for(int i=0;i,java,sockets,Java,Sockets,我正在将文件从服务器传输到客户端。在上面的代码中,我并不总是得到UTFException,只是5次尝试中就有一次。有人能帮我解决问题的原因吗?以下是我的错误输出: 您是因为某个特定文件出错吗?检查此项:您是因为某个特定文件出错吗?检查此项: while (!socket.isClosed()) { // Thread.sleep(100); clientData = new DataInputStream(in); files_to_be_reci

我正在将文件从服务器传输到客户端。在上面的代码中,我并不总是得到UTFException,只是5次尝试中就有一次。有人能帮我解决问题的原因吗?以下是我的错误输出:

您是因为某个特定文件出错吗?检查此项:您是因为某个特定文件出错吗?检查此项:
while (!socket.isClosed()) {
        // Thread.sleep(100);
        clientData = new DataInputStream(in);
        files_to_be_recieved = clientData.readInt();
        System.out.println("Files sent:" + files_to_be_recieved);
        fileName = new String[files_to_be_recieved];
        fileSize = new int[files_to_be_recieved];
        for (int i = 0; i < files_to_be_recieved; i++) {
            fileName[i] = clientData.readUTF();// THIS LINE SOMETIMES THROWS
                                                // UTFEXCEPTION
            fileSize[i] = clientData.readInt();
            System.out.println("FileName:" + fileName[i]);
            System.out.println("FileSize:" + fileSize[i]);
        }

        for (int i = 0; i < files_to_be_recieved; i++) {
            File f = new File("C:\\users\\MSP\\desktop\\", fileName[i]);
            out = new FileOutputStream(f);
            int received = 0;
            byte[] bytes = new byte[32384];
            System.out.println("Filename:" + fileName[i] + "\n" + "FileSize:" + fileSize[i]);
            int count;
            while ((count = in.read(bytes)) > 0) {
                // System.out.println("COunt=" + count);
                if (count < 1024) {
                    // System.out.println("COUNT INSIDE IF:" + count);
                    out.write(bytes, 0, count);
                    out.close();
                    break;
                }
                out.write(bytes, 0, count);
            }
            System.out.println("Transfer complete");
        }
    }