一个socket输出的问题,不知道是否跟线程有关
我在一个线程run()里面,用socket得到一个输出流。PrintStream out = new PrintStream(s.getOutPutStream());如果直接在线程里面就使用Out,可以把数据输出到浏览器上。问题是我把out传到一个Action类,Action ac = new Action(out);如果通过这个Action输出,则Action里面的out失效!不知是什么原因?后来我又把socket也传进Action里面,显示socket已经被关闭,但是我在使用Action之前只先给另一个类Decode使用了,在Decode里面并没有关闭socket啊?
run(){
PrintStream out = new PrintStream(s.getOutPutStream);
//此处使用Out有效,比如Out.println( "hello ");
Decode d = new Decode(s);//这里面socket并没有关闭
Action ac = new Action(out);//问题在这里,Action里面out无效
}
------解决方案--------------------应该是跟线程有关系,action只是一瞬间的事,out进去当然得关闭了
------解决方案--------------------线程的问题,线程执行完后,相对于out也应该关闭了,如果在其它地方引用,当然无效了。