关于tcp套接字中的的shutdown问题

.

TCP套接字中,有个showdownOutput()和showdownInput()两个方法
在老毕视频中:

                
Socket s = new Socket("192.168.1.254",10006);

		BufferedReader bufr = 
			new BufferedReader(new FileReader("IPDemo.java"));
		PrintWriter out = new PrintWriter(s.getOutputStream(),true);
		String line = null;
		while((line=bufr.readLine())!=null)
		{
			out.println(line);
		}
		s.shutdownOutput();//关闭客户端的输出流。相当于给流中加入一个结束标记-1

                 我想问一下客户端读取的是一个文件,而服务端中读取的是客户端读取的文件,又因为readLine()调用的是read()方法,
                 所以当客户端将文件读完时就无数据可读,就会返回-1,就向IO流中读取文件一样
                 而在Socket中,客户端读完文件不能返回-1呢?
答案:其实文件中是可以读到-1的,但是不能将-1传递给服务端,所以需要手动告知服务端输出流已经完毕,既加上showdownOutput
而close会同时关闭输入和输出流但不会加-1结束标志
shutdown可以单方向关闭流并且加上结束标志-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值