当前位置: 技术问答>java相关
=====请教一个有关ObjectInputStream的问题=====
来源: 互联网 发布时间:2017-03-19
本文导语: 以下程序通过编译,但运行到 ObjectInputStream in = new ObjectInputStream(ConnectionData.socket.getInputStream()); 时程序再也运行不下去了,并且没有抛出异常。 如果把与ObjectInputStream 有关的这两行改为/* ...*/中的代码,则可以运...
以下程序通过编译,但运行到
ObjectInputStream in = new ObjectInputStream(ConnectionData.socket.getInputStream());
时程序再也运行不下去了,并且没有抛出异常。
如果把与ObjectInputStream 有关的这两行改为/* ...*/中的代码,则可以运行。
请大侠帮忙看一下应该怎样改。我可想了四、五个小时。
不胜感激!
boolean connectToServer()
{
ConnectionData.server = jtxtServerIP.getText().toString().trim();
try
{
ConnectionData.serport = Integer.parseInt(jtxtServerPort.getText().trim());
InetAddress addr = InetAddress.getByName(ConnectionData.server);
ConnectionData.socket = new Socket(addr, ConnectionData.serport);
ObjectInputStream in = new ObjectInputStream(ConnectionData.socket.getInputStream());
ObjectOutputStream out = new ObjectOutputStream(ConnectionData.socket.getOutputStream());
/* BufferedReader in = new BufferedReader(new InputStreamReader(
ConnectionData.socket.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(ConnectionData.socket.getOutputStream())),true);*/
} catch(NumberFormatException e) // 端口有误
{
JOptionPane.showMessageDialog(this,"请填写一个1--65536的端口!","确定",
JOptionPane.ERROR_MESSAGE);
return false;
} catch(UnknownHostException e) //找不到该服务器
{
JOptionPane.showMessageDialog(this,"不能与服务器建立连接!","确定",
JOptionPane.ERROR_MESSAGE);
return false;
} catch(Exception e) // 连接服务器有误
{
try
{
ConnectionData.socket.close();
} catch(Exception e2) {}
JOptionPane.showMessageDialog(this,"不能与服务器建立连接!","确定",
JOptionPane.ERROR_MESSAGE);
return false;
}
return true;
}
ObjectInputStream in = new ObjectInputStream(ConnectionData.socket.getInputStream());
时程序再也运行不下去了,并且没有抛出异常。
如果把与ObjectInputStream 有关的这两行改为/* ...*/中的代码,则可以运行。
请大侠帮忙看一下应该怎样改。我可想了四、五个小时。
不胜感激!
boolean connectToServer()
{
ConnectionData.server = jtxtServerIP.getText().toString().trim();
try
{
ConnectionData.serport = Integer.parseInt(jtxtServerPort.getText().trim());
InetAddress addr = InetAddress.getByName(ConnectionData.server);
ConnectionData.socket = new Socket(addr, ConnectionData.serport);
ObjectInputStream in = new ObjectInputStream(ConnectionData.socket.getInputStream());
ObjectOutputStream out = new ObjectOutputStream(ConnectionData.socket.getOutputStream());
/* BufferedReader in = new BufferedReader(new InputStreamReader(
ConnectionData.socket.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(ConnectionData.socket.getOutputStream())),true);*/
} catch(NumberFormatException e) // 端口有误
{
JOptionPane.showMessageDialog(this,"请填写一个1--65536的端口!","确定",
JOptionPane.ERROR_MESSAGE);
return false;
} catch(UnknownHostException e) //找不到该服务器
{
JOptionPane.showMessageDialog(this,"不能与服务器建立连接!","确定",
JOptionPane.ERROR_MESSAGE);
return false;
} catch(Exception e) // 连接服务器有误
{
try
{
ConnectionData.socket.close();
} catch(Exception e2) {}
JOptionPane.showMessageDialog(this,"不能与服务器建立连接!","确定",
JOptionPane.ERROR_MESSAGE);
return false;
}
return true;
}
|
ObjectInputStream in = new ObjectInputStream(ConnectionData.socket.getInputStream());
从ConnectionData.socket.getInputStream()得到的对象流的类是否实现了Serialization接口,如果不是,不能用ObjectInputStream。
从ConnectionData.socket.getInputStream()得到的对象流的类是否实现了Serialization接口,如果不是,不能用ObjectInputStream。
|
catch一下IOException,看有没有错误
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。