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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王晓新 中级黑马   /  2012-6-23 10:56  /  1658 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.net.*;
  2. import java.io.*;
  3. class  TextClient
  4. {
  5.         public static void main(String[] args) throws Exception
  6.         {
  7.                 Socket s = new Socket("192.168.1.232",2012);
  8.                 BufferedReader bufr =  new BufferedReader(new FileReader("abc.java"));
  9.                 PrintWriter out =  new PrintWriter(s.getOutputStream(),true);
  10.                 DataOutputStream dos = new DataOutputStream(s.getOutputStream());
  11.                 long time= System.currentTimeMillis();
  12.                 dos.writeLong(time);
  13.                 String line =null;
  14.                 while((line=bufr.readLine())!=null)
  15.                 {
  16.                         out.println(line);
  17.                 }
  18.                 dos.writeLong(time);
  19.                 //s.shutdownOutput();//关闭客户端的输出流,相当于给流中加结束标记
  20.                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
  21.                 String str = bufIn.readLine();
  22.                 System.out.println(str);
  23.                 bufr.close();
  24.                 s.close();
  25.         }
  26. }
  27. class TextServer
  28. {
  29.         public static void main(String [] args) throws Exception
  30.         {
  31.                 ServerSocket ss =  new ServerSocket(2012);
  32.                 Socket s = ss.accept();
  33.                 String ip = s.getInetAddress().getHostAddress();
  34.                 System.out.println(ip+"----connected!");
  35.                 DataInputStream dis = new DataInputStream(s.getInputStream());
  36.                 long l= dis.readLong();
  37.                 BufferedReader bufr= new BufferedReader(new InputStreamReader(s.getInputStream()));
  38.                 PrintWriter out = new PrintWriter(new FileWriter("server.txt"),true);               
  39.                 String line=null;
  40.                 while((line=bufr.readLine())!=null)
  41.                 {
  42.                         out.println(line);
  43.                 }
  44.                 PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
  45.                 pw.println("上传成功!");
  46.                 out.close();
  47.                 s.close();
  48.                 ss.close();
  49.         }
  50. }
复制代码
用时间戳在服务端是怎么做的呢?

4 个回复

倒序浏览
{:soso_e154:}求大牛指点
回复 使用道具 举报
Date Time = new Date();  //获取当前时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-kk-mm-ss");  //定义格式
String strTime = formatter.format(Time); //以你定义的格式把获取到的时间转成字符串
再把这个字符串加到你要保存的文件名前面
PrintWriter out = new PrintWriter(new FileWriter(strTime+"server.txt"),true);               
这样就带时间戳了,当然时间你可以自定义要哪些数据,都在定义格式里面改
回复 使用道具 举报
李盼 发表于 2012-6-23 12:50
Date Time = new Date();  //获取当前时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-d ...

我看视频上老毕的意思就是说用时间戳来判断读取是否终止,那应该是在读取完键盘数据之后write一个time,然后在服务端读取这个time,服务端是怎么验证客户端已经读完的?还有为什么在客户端写数据前后都要wirte这个time呢?
                DataOutputStream dos = new DataOutputStream(s.getOutputStream());
                long time= System.currentTimeMillis();
                dos.writeLong(time);
                String line =null;
                while((line=bufr.readLine())!=null)
                {
                        out.println(line);
                }
                dos.writeLong(time);
回复 使用道具 举报
{:soso_e154:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马