黑马程序员技术交流社区

标题: 我写了个tcp传输MP3文件的程序,请问下怎么判断传输完成了 [打印本页]

作者: l598790586    时间: 2015-6-3 20:47
标题: 我写了个tcp传输MP3文件的程序,请问下怎么判断传输完成了
  1. import java.io.*;
  2. import java.net.*;
  3. class  ReceServer
  4. {
  5.         public static void main(String[] args) throws Exception
  6.         {
  7.                 ServerSocket ss = new ServerSocket(4005);
  8.                 Socket s = ss.accept();
  9.                
  10.                 System.out.println(s.getInetAddress().getHostAddress()+"...conection...");
  11.                 BufferedInputStream bis = new  BufferedInputStream(s.getInputStream());

  12.                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("e:\\Music\\邓紫棋-泡沫.MP3"));

  13.                 byte[] buf = new byte[1024];
  14.                 int len = 0;
  15.                 while ((len=bis.read(buf))!=-1)
  16.                 {
  17.                         bos.write(buf,0,len);
  18.                         System.out.println("正在接收中");
  19.                 }

  20.                 BufferedWriter bufout = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
  21.                 bufout.write("传输完成");

  22.                 bos.close();
  23.                 s.close();
  24.                 ss.close();
  25.         }
  26. }
复制代码

/*
发送MP3文件到服务端
*/
import java.io.*;
import java.net.*;
class  SendClient
{
        public static void main(String[] args) throws Exception
        {
                Socket s = new Socket("192.168.27.190",4005);

                BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\Music\\华语歌\\G.E.M. 邓紫棋\\泡沫 - G.E.M. 邓紫棋.mp3"));

                BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());

                byte[] buf = new byte[1024];
                int len = 0;

                while ((len=bis.read(buf))!=-1)
                {
                        bos.write(buf,0,len);
                        System.out.println("正在发送中");
                }
               
                BufferedReader bufin = new BufferedReader(new InputStreamReader(s.getInputStream()));
                String line = bufin.readLine();

                System.out.println(line);

                bis.close();
                s.close();
        }
}
一个是客户端,一个是服务端,我文件能发送完成,但是我不知道怎么判断结束







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2