| 
 
| public class Test9 {
 
 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();
 }
 }
 
 | 
 |