读书人

关于socket的有关问题

发布时间: 2012-05-28 17:59:54 作者: rapoo

关于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的源码。

读书人网 >J2EE开发

热点推荐