首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为什么ObjectInputStream要放在ObjectOutputStream之后?解决方法

2012-01-08 
为什么ObjectInputStream要放在ObjectOutputStream之后?publicclassSocketClient{publicstaticvoidmain(St

为什么ObjectInputStream要放在ObjectOutputStream之后?
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先被初始化,程序似乎就会被阻塞住,服务器端的代码也有类似的问题,请问大家这究竟是什么原因?

[解决办法]
如果说读写被阻塞,还可以理解,初始化被阻塞,实在不解!

友情up
[解决办法]
关注一下

热点排行