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

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();  //关闭客户端的流对象,添加结束标记-1
		System.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();
	
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值