private Socket sk = null;
private ObjectOutputStream output = null;
private ObjectInputStream input =null;
private void initialSocket(){
//主机名
String hostName = Tools.getValue(SysConstants.SYS_HOSTNAME);
//端口号
int part = Integer.parseInt(Tools.getValue(SysConstants.SYS_LISTENERPORT));
try{
sk = new Socket(hostName,part);
//下面得到IO流的两条语句,为什么反过来程序就无法运行下去 会停在input = new ObjectInputStream(sk.getInputStream());这一句上 为什么?
output = new ObjectOutputStream(sk.getOutputStream());
input = new ObjectInputStream(sk.getInputStream());
}catch(IOException e){
e.printStackTrace();
}
}
------解决方案--------------------
在ObjectInputStream的构造函数里面,它好像会从参数InputStream里面读4个字节的头,如果此时InputStream里面读不到数据,它就会一直阻塞。
你可以看下ObjectInputStream的源码。
------解决方案--------------------
阻塞 。
你把客户端的对调之后 ,再把服务端的也对调一下试试。
------解决方案--------------------