A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

lostom

初级黑马

  • 黑马币:50

  • 帖子:19

  • 精华:0

package test;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class File_Client {

        public static void main(String[] args) throws UnknownHostException, IOException {
                Socket socket = new Socket("127.0.0.1",7777);
                BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
                System.out.println("请输入要上传到服务器的文件路径");
                Scanner sc = new Scanner(System.in);
                String s = sc.nextLine();
                BufferedInputStream bis=null;
                if(new File(s).isFile()){
                        bis = new BufferedInputStream(new FileInputStream(s));
                }else{
                        System.out.println("您输入的路径有误,请重启客户端");
                        System.exit(0);
                }
                bos.write(new File(s).getName().getBytes());
                bos.flush();
                bos.write(new File(s).getName().getBytes().length);
                bos.flush();
                System.out.println(br.readLine());
                int i = 0;
                byte[] tt = new byte[1024];
                while((i = bis.read(tt))!= -1){
                        bos.write(tt,0,i);
                }
                bos.flush();
                bis.close();
//                System.out.println(br.readLine()); //为什么这里的输出会出问题
                socket.close();
        }

}
————————————————————————————————————————————————————————————————
package test;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class File_Server {

        public static void main(String[] args) throws IOException {
                ServerSocket server = new ServerSocket(7777);
                Socket socket = server.accept();
                BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
                PrintStream ps = new PrintStream(socket.getOutputStream());
                byte[] i = new byte[1000];
                bis.read(i);
                int w =bis.read();
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(new String(i,0,w))));
//                System.out.println(new String(i,0,w));
                ps.println("开始上传" + new String(i,0,w));
                int x = 0;
                byte[] tt = new byte[4096];
                while((x = bis.read(tt))!= -1){
                        bos.write(tt,0,x);
                        bos.flush();
                }
//                ps.println("上传成功");  //卡在这里了
                bos.close();
                socket.close();
        }

}

不知道是什么问题,文件能够上传上来,但是,会卡在最后一句返回那里,请大神拯救...............

您需要登录后才可以回帖 登录 | 加入黑马