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