为什么ObjectInputStream要放在ObjectOutputStream之后?

qiaomuf 2007-06-28 01:21:51
public class SocketClient {

public static void main(String[] args) throws ClassNotFoundException{
try {
Socket socket=new Socket("127.0.0.1",8189);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ObjectOutputStream output=new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream input=new ObjectInputStream(socket.getInputStream());
Scanner inConsole=new Scanner(System.in);
boolean done=false;
while(!done){
String inString=(String)input.readObject();
System.out.println(inString);
String s=inConsole.nextLine();
output.writeObject(s);
if(s.equals("bye"))
done=true;
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这段代码中初始化ObjectInputStream和ObjectOutputStream的部分如果顺序换一下,让ObjectInputStream先被初始化,程序似乎就会被阻塞住,服务器端的代码也有类似的问题,请问大家这究竟是什么原因?
...全文
230 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiaomuf 2007-06-30
  • 打赏
  • 举报
回复
再顶一次
奋斗并快乐着 2007-06-29
  • 打赏
  • 举报
回复
关注一下
qiaomuf 2007-06-28
  • 打赏
  • 举报
回复
再顶一下。。。。。。
qiaomuf 2007-06-28
  • 打赏
  • 举报
回复
这里有人也遇到了类似的问题
http://topic.csdn.net/t/20031028/10/2401894.html
回帖的人帮助解决了问题,可是其中的道理我想不清。初始化为什么会被阻塞。。。。
zqrqq 2007-06-28
  • 打赏
  • 举报
回复
如果说读写被阻塞,还可以理解,初始化被阻塞,实在不解!

友情up
qiaomuf 2007-06-28
  • 打赏
  • 举报
回复
没有人回答吗??

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧