当前位置:编程学习 > JAVA >>

java socket Input/OutputStream 关闭问题

我想用socket实现客户端与服务器端的通信,问题是: 当我在一端向另一端用BufferedWriter(OutputStreamWriter(socket.getOutputStream()))写入数据时,写完了,如果不关闭bw,程序会一直阻塞,大家知道的;但是若关闭了bw,信息是写出去了,但是bw关闭后连带socket他也给我关闭了,问题是我还有东西要写回呢!即,我要实现信息互通,而不是单方向写入,写完后一关了之;我还要用到InputStream,还要写回信息。 这就出现了一对矛盾,关了bw不好,不关又不行;我尝试用socket.shutdownInputStream/OutputStream(),但效果不理想,本类可以写出的,却连写都写不进去了。 小弟因学期项目迫在眉睫,卡在此处,望求高人指点,希望大家不吝赐教啊!!!
补充:大家帮帮忙吧!请大家帮帮忙吧!
只有提问关于游戏的问题才给几十个回复,而学习方面的都没有人吗!
动动手指就这么难吗!
答案:我不清楚为什么你关掉流回把socket也关掉,但是既然要通信写回为什么要关掉流呢,我一般都是一个socket就用一个流,知道完成所有的通信操作,socket和流都关掉就可以了。你说不关会阻塞,有没有用多线程啊,对于客户端/服务器这种网络通讯等任务,一般肯定是要用多线程的,就是,一个线程一个任务,一个线程的阻塞不影响其他线程继续工作。

上一个:java新人提问 谢谢老鸟回答
下一个:什么是哈希码?Java中的hash码有什么作用?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,