当前位置: 代码迷 >> J2EE >> 关于socket的有关问题
  详细解决方案

关于socket的有关问题

热度:113   发布时间:2016-04-22 01:24:08.0
关于socket的问题
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的源码。
------解决方案--------------------
阻塞 。
你把客户端的对调之后 ,再把服务端的也对调一下试试。
------解决方案--------------------
探讨
在ObjectInputStream的构造函数里面,它好像会从参数InputStream里面读4个字节的头,如果此时InputStream里面读不到数据,它就会一直阻塞。
你可以看下ObjectInputStream的源码。
  相关解决方案