黑马程序员技术交流社区
标题:
再问这TCP客户 服务端 之间,就就是23天最后的视频
[打印本页]
作者:
黄鸿达
时间:
2013-2-21 21:24
标题:
再问这TCP客户 服务端 之间,就就是23天最后的视频
本帖最后由 黄鸿达 于 2013-2-21 23:28 编辑
import java.io.*;
import java.net.*;
public class Send2 {
public static void main(String[] args) throws Exception {
Socket s=new Socket(InetAddress.getLocalHost().getHostAddress(),12650);
BufferedReader br=
new BufferedReader(new FileReader("D:\\1.txt"));
BufferedWriter bw=
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String len=null;
while((len=br.readLine())!=null){
bw.write(len);
bw.newLine();
bw.flush();
}
System.out.print("1");
BufferedReader bbr=
new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.print("2");
while((len=bbr.readLine())!=null){
System.out.print("我写2-1");
System.out.print(len);
System.out.print("我写2-2");
}
System.out.print("2-1");
bw.close();
br.close();
//s.close();
}
}
复制代码
import java.io.*;
import java.net.*;
public class Re2 {
public static void main(String[] args)throws Exception{
ServerSocket ss=new ServerSocket(12650);
Socket s=ss.accept();
BufferedReader br=
new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bw=
new BufferedWriter(new FileWriter("D:\\3.txt"));
String len=null;
while((len=br.readLine())!=null){//这里~~~~~为什么
<font>br.readLine()</font><span style="background-color: rgb(255, 255, 255); ">为什么 </span><font>读不到NULL?</font>
System.out.print("我写");
bw.write(len);
bw.newLine();
bw.flush();
System.out.print("我写1");
}
System.out.print("3");
PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
System.out.print("4");
pw.println("上传完毕");
bw.close();
br.close();
}
}
复制代码
经过写我打印语句,我也知道是因为Re2类,在
while((len=br.readLine())!=null)这个语句中还没有结束,才导致下面打印3语句没有执行,
也跟毕老师23天视频14,12分20秒左右讲的 2边都在等。
问题1:我知道要加结束标记给服务器端,但是我不懂Re2类,也就是服务器端 的
br.readLine()
为什么
读不到NULL?
问题2:要加结束标记,为套接字.shutdownXXXStream方法,是不是最简洁方便公认最好的方法?
新问题3:为什么要加flush(),程序后面也有close方法,最终也要会刷新,但是不加flush却会出错,不解。求大侠那一部分的流程
作者:
黄鸿达
时间:
2013-2-21 23:28
哎,看了24天01视频 终于知道为什么读不到null
根据老师讲的是客户端读的到-1,结束循环内的写入动作,但是写入动作并没有把-1写过过去给服务端。
服务端没有读到-1所以一直等待。
同理也能解释为什么读不到null
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2