{ public static void main(String[] args) {} } //客户端 class Client { public static void main(String[] args) throws Exception { //建立Socket服务 Socket fileLoaderSocket = new Socket("168.168.168.94", 10005); //从客户端本地读取文件,并写入socket的输出流中 OutputStream out = fileLoaderSocket.getOutputStream(); //实例化对象fileReader InputStream fileRead = new FileInputStream("G:\\2.mp3"); //建立数组 byte[] buf = new byte[1024]; int len = 0; //判断是否读到文件末尾 while((len=fileRead.read(buf)) != -1) { out.write(buf, 0, len); } //告诉服务端,文件已传输完毕 fileLoaderSocket.shutdownOutput(); //获取从服务端反馈的信息 BufferedReader in = new BufferedReader(new InputStreamReader(fileLoaderSocket.getInputStream())); String serverBack = in.readLine(); System.out.println(serverBack); //资源关闭 fileLoaderSocket.close(); fileRead.close(); } } //服务端 class Server { public static void main(String[] args) throws Exception { //建立服务端Socket ServerSocket ss = new ServerSocket(10005); //接收客户端Socket Socket fileLoaderSocket = ss.accept(); //打印连接信息 String ip = fileLoaderSocket.getInetAddress().getHostAddress(); System.out.println(ip + "...conncected"); //接收文件,并保存 InputStream in = fileLoaderSocket.getInputStream(); //实例化对象fileSave OutputStream fileSave = new FileOutputStream("E:\\3.mp3"); //建立数组buf byte[] buf = new byte[1024]; int len = 0; //判断是否读到文件末尾 while((len=in.read(buf)) != -1) { fileSave.write(buf, 0, len); //刷新 fileSave.flush(); } //返回文件复制情况信息 BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fileLoaderSocket.getOutputStream())); out.write("文件上传成功"); //刷新 out.flush(); //资源关闭 ss.close(); fileLoaderSocket.close(); fileSave.close(); } } | public class Test9
使用TCP协议写一个可以上传文件的服务器和客户端。
最新推荐文章于 2023-05-02 18:19:20 发布