《黑马程序员》 TCP端复制文件

来源:互联网 发布:虚拟歌姬软件下载 编辑:程序博客网 时间:2024/05/21 08:44
import java.io.*;import java.net.*;/*    TCP端复制文件:      标记的问题:     可以自定义一个结束标记也可以使用socket自带的方法   socket的shutdownInput,shutdownOutput  自定义结束标记只是会麻烦一些*/class TcpCclient{public static void main(String[] args) throws Exception{Socket s=new Socket("172.11.0.34",10009);//读取本地的文件BufferedReader birf=new BufferedReader(new FileReader(new File("c:\\hwsig.log")));String line=null;//把数据保持原样性输出去,自动刷新//构造方法接收一个输出流PrintWriter pow=new PrintWriter(s.getOutputStream(),true);while((line=birf.readLine())!=null){//把数据写出去pow.println(line);}//pow.println("over");s.shutdownOutput();  //关闭客户端的流对象,添加结束标记-1System.out.println("开始接收服务器回复信息");//获取服务器返回的信息BufferedReader bir=new BufferedReader(new InputStreamReader(s.getInputStream()));String vl=bir.readLine();System.out.println("服务器返回的信息:"+vl);System.out.println("服务器回复信息接收完毕");pow.close();//s.close();}}class CFfileServer {public static void main(String[] args) throws Exception{ServerSocket ss=new ServerSocket(10009);Socket s=ss.accept();String ip=s.getInetAddress().getHostAddress();System.out.println(ip+"....connected");BufferedReader birf=new BufferedReader(new InputStreamReader(s.getInputStream()));//将数据写出去,保持数据的原样性输出PrintWriter pow=new PrintWriter(new FileWriter("e:\\copy2.txt"),true);String line=null;while((line=birf.readLine())!=null){//if("over".equals(line))//break;pow.println(line);}//返回数据给用户PrintWriter psw=new PrintWriter(s.getOutputStream(),true);//为什么数据没有发出去psw.println("兄弟,信息已经收到");pow.close();psw.close();}}

0 0